RESTFUL规范自我总结

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"
                }
                ...
                ]
        }
原文地址:https://www.cnblogs.com/Ailewent/p/14342622.html