RESTful规范

Representational State Transfer

一种定义Web API接口的设计风格

数据的安全保障:采用HTTPS协议进行传输

接口特征表现:用 api 关键字标识接口

1
https://api.baidu.com

多数据版本共存:在 url 链接中标识数据版本

1
2
https://api.baidu.com/v1
https://api.baidu.com/v2

数据即是资源:接口一般都是完成前后台数据的交互,交互的数据称为资源

1
2
https://api.baidu.com/v1/users
https://api.baidu.com/v1/books

资源操作由请求方式决定:通过请求方式来标识增删改查动作

1
2
https://api.baidu.com/v1/books	-get 获取所有书
https://api.baidu.com/v1/books -post 新增书籍

过滤:通过传参形式传递搜索条件

1
https://api.baidu.com/v1/books?limit=10

响应状态码:通过状态码反应当前访问情况

1
2
3
4
5
6
7
8
200	常规请求
201 创建成功
301 永久重定向
302 暂存重定向
403 请求无权限
404 请求路径不存在
405 请求方法不存在
500 服务器异常

错误处理:返回错误信息

1
{"code": 1001, "msg": "登录失败"}

返回结果:针对不同操作服务器向用户返回的结果应该符合规范

1
2
3
4
5
6
7
8
9
GET /collection 返回资源对象的列表
{"code": 1000, "data": []}
GET /collection/resource 返回单个资源对象
{"code": 1000, "data": {}}
POST /collection 返回新生成的资源对象
PUT /collection/resource 返回完整的资源对象
PATCH /collection/resource 返回完整的资源对象
DELETE /collection/resource 返回一个空文档

需要 url 请求的资源需要访问资源的请求链接:禁止一个URL请求去操作另一个请求的资源