Representational State Transfer
1 大部分的接口都会按照这个规范去写。
2 总共10点
1 使用https协议进行密文传输数据(保证数据安全)
2 url中带关键字api
https://api.baidu.com
https://www.baidu.com/api
3 url中带接口的版本信息
https://api.baidu.com/v1
https://api.baidu.com/v2
4 数据即是资源,均使用名词
https://api.baidu.com/users
https://api.baidu.com/books
https://api.baidu.com/book
5 资源操作由请求方式决定
查、-查询操作---get
增、-新增操作---post
改、-修改操作---put,patch (put是整体更新,patch是局部更新)
删、-删除操作---delete
https://api.baidu.com/books - get请求:获取所有书
https://api.baidu.com/books - post请求:新增一本书书
https://api.baidu.com/books/1 - get请求:获取主键为1的书
https://api.baidu.com/books/1 - put请求:整体修改主键为1的书
https://api.baidu.com/books/1 - patch请求:局部修改主键为1的书
https://api.baidu.com/books/1 - delete请求:删除主键为1的书
6 请求url中带搜索筛选条件
https://api.example.com/v1/zoos?limit=10:指定返回记录的数量
https://api.example.com/v1/zoos?offset=10:指定返回记录的开始位置、
https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
7 响应中要带状态码(自己定义,或者http响应状态码)
{
status:200
}
8 响应返回错误信息
{
status:200
msg: "无权限操作"
}
9 返回结果,遵循如下规范(大概率都没有遵循)
GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档
10 返回数据中带链接地址
{
"status": 0,
"msg": "ok",
"results":[
{
"name":"肯德基(罗餐厅)",
"img": "https://image.baidu.com/kfc/001.png"
}
]
}