Appearance
简介
全称:Resources Representational State Transfer
简称:REST(Representational State Transfer)
通俗来说:资源在网络中以某种表现形式进行状态转移。
RESTful架构
RESTful 是一种架构不是一种技术或者规范。
每一个URI代表一种资源;
客户端和服务器之间,传递这种资源的某种表现层;
客户端通过HTTP请求方式(GET、POST、PUT、PATCH、DELETE),对服务器端资源进行操作,实现"表现层状态转化"。
设计原则
- 路径名称避免动词
bash
# Good
curl -X GET http://httpbin.org/orders
# Bad
curl -X GET "http://httpbin.org/getOrders"
- URI 使用复数形式
若使用单数的形式来表示获取某一类资源,例如:
bash
curl -X GET "http://httpbin.org/order"
使用单数形式,会使用户产生该系统中只有一个 order 的困惑,用复数形式在逻辑上则顺畅很多。
bash
curl -X GET "http://httpbin.org/orders"
请求标准
客户端通过HTTP请求方式(GET、POST、PUT、PATCH、DELETE),对服务器端资源进行操作,实现"表现层状态转化"。
GET 获取资源(常用)
bash
# 代表获取当前系统的所有订单信息
curl -X GET http://httpbin.org/orders
# 代表获取订单编号为 1 的订单详情信息
curl -X GET http://httpbin.org/orders/1
POST 创建资源(常用)
bash
# 代表创建一个名称为 order 的资源
curl -X POST http://httpbin.org/orders \
-d '{"name": "awesome", region: "A"}'
PUT 更新资源(常用)
bash
# 代表将 id 为 1 的 order 进行数据替换
curl -X PUT http://httpbin.org/orders/1 \
-d '{"name": "new awesome", region: "B"}'
PATCH 更新部分资源(不常用)
bash
# 代表将 id 为 1 的 order 中的 region 字段进行更改,其他数据保持不变
curl -X PATCH http://httpbin.org/orders/1 \
-d '{region: "B"}'
DELETE 删除资源(常用)
bash
# 代表将 id 为 1 的 order 删除
curl -X DELETE http://httpbin.org/orders/1
# 批量删除
curl -X DELETE http://httpbin.org/orders
-d '{"id": [1,2,3]}'