Skip to content

简介

全称:Resources Representational State Transfer

简称:REST(Representational State Transfer)

通俗来说:资源在网络中以某种表现形式进行状态转移。

RESTful架构

RESTful 是一种架构不是一种技术或者规范。

  • 每一个URI代表一种资源;

  • 客户端和服务器之间,传递这种资源的某种表现层;

  • 客户端通过HTTP请求方式(GET、POST、PUT、PATCH、DELETE),对服务器端资源进行操作,实现"表现层状态转化"。

设计原则

  1. 路径名称避免动词​
bash
# Good
curl -X GET http://httpbin.org/orders

# Bad
curl -X GET "http://httpbin.org/getOrders"
  1. 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]}'