drf—— RESTful API规范

一、RESTful API规范

1 英文名:Representational State Transfer,中文全称:表征性状态转移
2 Web API接口的设计风格,尤其适用于前后端分离的应用模式中
3 与语言,平台无关,任何框架都可以写出符合restful规范的api接口
4 规范:10条
    -1  数据的安全保障:url链接一般都采用https协议进行传输
    -2  接口特征表现:api关键字标识
        -https://api.baidu.com/books/
        -https://www.baidu.com/api/books/
    -3 多版本共存:url链接中标识接口版本
        -https://api.baidu.com/v1/books/
        -https://api.baidu.com/v2/books/
    -4 数据即是资源,均使用名词(可复数)***********
        -接口一般都是完成前后台数据的交互,交互的数据我们称之为资源
        -一般提倡用资源的复数形式,不要使用动词
        -查询所有图书
            -https://api.baidu.com/books/
            -https://api.baidu.com/get_all_books/ # 错误示范,不可用
            -https://api.baidu.com/delete-user    # 错误的示范,不可用
            -https://api.baidu.com/user           # 删除用户的示例,到底是删还是查?由第5条规范决定
                
   -5 资源操作由请求方式决定:***********
        https://api.baidu.com/books       - get请求:获取所有书
        https://api.baidu.com/books/1     - get请求:获取主键为1的书
        https://api.baidu.com/books       - post请求:新增一本书书
        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&limit=3:指定返回记录的开始位置
        https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,以及每页的记录数
        https://api.example.com/v1/zoos?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序
        https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
            
   -7  响应状态码
        -返回数据中带状态码
        -{'code':100}
   -8 返回结果中带错误信息
        -{'code':100,'msg':'因为xx原因失败'}
   -9 返回结果,该符合以下规范
        GET /collection:返回资源对象的列表(数组)
        GET /collection/resource:返回单个资源对象(字典)
        POST /collection:返回新生成的资源对象    (新增后的对象字典)
        PUT /collection/resource:返回完整的资源对象 (修改后的对象字典)
        PATCH /collection/resource:返回完整的资源对象 (修改后的对象字典)
        DELETE /collection/resource:返回一个空文档   ()
        
   -10 返回的数据中带链接地址
        -查询id为1的图书接口,返回结果示例(伪代码)
        {'code':100,
         'msg':'成功',
         'result':
             {'title':'西游记',
              'price':12.3,
              'publish':'https://127.0.0.1/api/v1/publish/3'
             }
        }

 

posted @ 2020-11-04 20:18  1024bits  阅读(139)  评论(0编辑  收藏  举报