1.安全保障:https传输
2.特征表现:一看便知,用api关键字标识接口url
- [https://api.baidu.com](https://api.baidu.com/)
- https://www.baidu.com/api
3.多版共存:不同版本接口可以同时存在
- https://api.baidu.com/v1
- https://api.baidu.com/v2
4.数据即资源:传输的数据可以看作真正的资源存在,接口以名词的形式存在
- https://api.baidu.com/users
- https://api.baidu.com/books
5.请求方式决定操作方式:不同的请求方式,对于数据的操作方式不同
- https://api.baidu.com/books - get请求:获取数据
- https://api.baidu.com/books/1 - get请求:获取数据
- https://api.baidu.com/books - post请求:增加数据
- https://api.baidu.com/books/1 - put请求:修改数据(整体)
- https://api.baidu.com/books/1 - patch请求:修改数据(局部)
- https://api.baidu.com/books/1 - delete请求:删除数据
6.数据过滤表现于url上:通过在url上传参的形式传递搜索条件
- https://api.example.com/v1/zoos?limit=10:指定返回记录的数量
- https://api.example.com/v1/zoos?offset=10:指定返回记录的开始位置
7.响应状态码:不同的状态吗代表响应的不同
应状态码2xx
- 200:常规请求
- 201:创建成功
7.2 重定向响应
- 响应状态码3xx
- 301:永久重定向
- 302:暂时重定向
7.3 客户端异常
- 响应状态码4xx
- 403:请求无权限
- 404:请求路径不存在
- 405:请求方法不存在
7.4 服务器异常
- 响应状态码5xx
- 500:服务器异常
8.错误处理:对于错误要给予提示信息
{
error: "无权限操作"
}
9.返回结果:针对不同操作,服务器向用户返回的结果应该符合以下规范
GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档
10.地址链接:响应回来的额数据有链接以url链接的方式返回
{
"status": 0,
"msg": "ok",
"results":[
{
"name":"肯德基(罗餐厅)",
"img": "https://image.baidu.com/kfc/001.png"
}
...
]
}