这个时候,Rest这个名词一直在出现,我觉得我应该理解下它,这是一种软件架构风格。它是一种针对网络应用的设计和开发方式。可以降低开发的复杂性,提高系统的可伸缩性。
它的轻量级web服务,发挥HTTP协议的原生的GET,PUT,POST,DELETE。 REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁
REST服务关键原则:
1. 给一切物体一个ID
2.连接物体在一起
3.使用标准方法
4.资源多重表述
5.无状态通信
假设我们有这样的类OrderManagementService, CustomerManagementService:
实现REST将是基于HTTP应用协议,像下图这样:
REST能实现是一种解耦方法,让我们实现这些架构特性:性能,伸缩性,简化,可修改性,扩展性
、
从上面的定义中,我们可以发现REST其实是一种组织Web服务的架构,而并不是我们想象的那样是实现Web服务的一种新的技术,更没有要求一定要使用HTTP。其目标是为了创建具有良好扩展性的分布式系统。
反过来,作为一种架构,其提出了一系列架构级约束。这些约束有:
- 使用客户/服务器模型。客户和服务器之间通过一个统一的接口来互相通讯。
- 层次化的系统。在一个REST系统中,客户端并不会固定地与一个服务器打交道。
- 无状态。在一个REST系统中,服务端并不会保存有关客户的任何状态。也就是说,客户端自身负责用户状态的维持,并在每次发送请求时都需要提供足够的信息。
- 可缓存。REST系统需要能够恰当地缓存请求,以尽量减少服务端和客户端之间的信息传输,以提高性能。
- 统一的接口。一个REST系统需要使用一个统一的接口来完成子系统之间以及服务与用户之间的交互。这使得REST系统中的各个子系统可以独自完成演化。
在HTTP中,一个URL主要由以下几个部分组成:
- 协议。即HTTP以及HTTPS。
- 主机名和端口。如www.egoods.com:8421
- 资源的相对路径。如/api/categories。
- 请求参数。即由问号开始的由键值对组成的字符串:?page=1&page_size=20
在为一个资源设计其所对应的URL时,我们需要着重考虑第三部分和第四部分组成。