zoukankan      html  css  js  c++  java
  • 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'
                 }
            }
  • 相关阅读:
    apple苹果产品国行和港行的区别
    iOS ifdef ifndef endif
    objectiveC【语法】修饰符 static extern const
    iOS关于Xcode上的Other linker flags
    win7 64位旗舰版下载
    关于ios 和 android 录音(语音)对聊文件格式问题
    关于 NSData 的数据类型(2进制,16进制之间)及深入剖析
    iOS调用系统相册、相机 显示中文标题
    xcode各个版本下载 xcode7 xcode6 xcode5
    IOS开发之----全局变量extern的使用
  • 原文地址:https://www.cnblogs.com/guojieying/p/13928077.html
Copyright © 2011-2022 走看看