REST由Roy Fielding于2000年在他的博士论文
<https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm>
中引入和定义。REST是用于设计分布式系统的架构风格。它不是标准,而是一组约束,例如无状态,具有客户端/服务器关系和统一接口。REST与HTTP并不严格相关,但最常与它相关联。

REST原理

* Resources 公开易于理解的目录结构URI。
* Representations 传输JSON或XML以表示数据对象和属性。
* Messages 显式使用HTTP方法(例如,GET,POST,PUT和DELETE)。
* Stateless 交互在请求之间不在服务器上存储客户端上下文。状态依赖性限制并限制可伸缩性。客户端保持会话状态。
HTTP方法

使用HTTP方法将CRUD(创建,检索,更新,删除)操作映射到HTTP请求。

GET

检索信息。GET请求必须是安全且幂等
<https://en.wikipedia.org/wiki/Idempotence#Computer_science_meaning>
的,这意味着无论使用相同参数重复多少次,结果都是相同的。它们可能有副作用,但用户并不期望它们,因此它们对系统的操作不是至关重要的。请求也可以是部分或有条件的。

检索ID为1的地址:
GET /addresses/1
POST

请求URI上的资源对提供的实体执行某些操作。POST通常用于创建新实体,但也可用于更新实体。

创建一个新地址:
POST /addresses
PUT

将实体存储在URI中。PUT可以创建新实体或更新现有实体。PUT请求是幂等的。幂等性是PUT与POST请求的期望之间的主要区别。

修改ID为1的地址:
PUT /addresses/1
注意: PUT替换现有实体。如果仅提供数据元素的子集,则其余的将替换为空或null。

PATCH

仅更新URI上实体的指定字段。PATCH请求既不安全也不是幂等(RFC 5789)。这是因为PATCH操作无法确保整个资源已更新。
PATCH /addresses/1
DELETE

请求删除资源; 但是,不必立即删除资源。它可能是异步或长时间运行的请求。

删除ID为1的地址:
DELETE /addresses/1
HTTP状态代码

状态代码表示HTTP请求的结果。

* 1XX - 信息
* 2XX–成功
* 3XX - 重定向
* 4XX - 客户端错误
* 5XX - 服务器错误
媒体类型

Accept和Content-Type
HTTP头可以用来描述在HTTP请求中发送或请求的内容。如果客户端请求json格式的响应,则可以将Accept设置为application/json。相反,在发送数据时,将内容类型设置为application/xml会告诉客户机请求中发送的数据是xml。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信