REST是什么
REST(Representational State Transfer)描述了一个架构样式的网络系统,REST技术比对象访问协议(SOAP)更好,因为REST利用更少的带宽,使其更适合于Internet使用。REST原则是指客户端和服务器之间的交互在请求之间是无状态的。
REST的约束
统一界面
统一接口约束定义了客户端和服务器之间的接口
原则:- 使用URI作为资源标识符在请求中标识各个资源
- 当客户端持有资源的表示时,它有足够的信息来修改或删除服务器上的资源,前提是它有权这样做
- 每条消息都包含足够的信息来描述如何处理消息
- 客户端通过正文内容,查询字符串参数,请求标头和请求的URI来提供状态
无状态
本质上,这意味着处理请求的必要状态包含在请求本身中,无论是作为URI,查询字符串参数,正文还是标题的一部分。URI唯一标识资源,主体包含该资源的状态(或状态更改)。然后,在服务器进行处理之后,通过标头,状态和响应主体将适当的状态或重要状态的片断传送回客户端。
- 可缓存
与万维网一样,客户端可以缓存响应。因此,响应必须隐式或显式地将自身定义为可缓存或不可缓存,以防止客户端重用陈旧或不适当的数据以响应进一步的请求
- 客户端服务器
统一接口将客户端与服务器分开
- 分层系统
客户端通常无法判断它是直接连接到终端服务器,还是沿途的中介,中间服务器可以通过启用负载平衡和提供共享缓存来提高系统可伸缩性
- 按需代码(可选)
服务器能够通过向客户端传输可以执行的逻辑来临时扩展或自定义客户端的功能
RESTful API是什么
这个是一种软件架构风格,只是提供了一组设计原则和约束条件。主要用于客户端和服务端的交互。从本质上讲,RESTful API最终只是URI的集合,对这些URI的HTTP调用以及资源的一些JSON和/或XML表示,其中许多将包含关系链接。URIs涵盖RESTful可寻址性原则。每个资源都有自己的地址或URI服务器可以提供的每条信息都作为资源公开。统一接口的约束部分通过URI和HTTP动词的组合来解决,并且根据标准和约定使用它们。
REST和RESTful关系:
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。REST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力,更好地使用现有Web标准中的一些准则和约束。虽然REST本身受Web技术的影响很深, 但是理论上REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例
Restful的原理
RESTful API分解事务以创建一系列小模块。每个模块都解决了事务的特定底层部分。这种模块化为开发人员提供了很大的灵活性,但开发人员从头开始设计可能具有挑战性。RESTful API利用RFC 2616协议定义的HTTP方法。他们使用GET来检索资源; PUT改变资源的状态或更新资源 ; POST来创建该资源; DELETE删除资源。
Restful的规定
HTTP协议定义了许多为请求分配语义含义的方法。大多数RESTful Web API使用的常见HTTP方法是:
- GET在指定的URI处检索资源的表示。响应消息的主体包含所请求资源的详细信息。
- POST在指定的URI处创建新资源。请求消息的主体提供新资源的详细信息。请注意,POST也可用于触发实际不创建资源的操作。
- PUT要么在指定的URI上创建或替换资源。请求消息的主体指定要创建或更新的资源。
- PATCH执行资源的部分更新。请求正文指定要应用于资源的更改集。
- DELETE删除指定URI处的资源。
Restful接口定义的格式1
2
3
4"/url",method=RequestMethod.GET) (value=
"/url",method=RequestMethod.POST) (value=
"/url",method=RequestMethod.DELETE) (value=
"/url",method=RequestMethod.PUT) (value=