day 70

day 69 drf

01接口;接口的概念、数据接口文档、接口规范(restful)

  1. django restfarmework
  2. drf是django的插件
  3. 安装
    1. pip3 install djangorestfarmework
    2. 使用drf时要在settings中注册

01接口

  1. 什么是接口;规定了提交请求参数的请求方式、访问器可以获取响应的反馈数据的url连接
    1. 四部分;url连接+请求方式+请求参数+响应数据
  2. 满足了同样的接口规范,无论前后端是什么语言,和数据处理方式,都可以进行交互

02文档

03restful接口规范

  1. url连接

    1. 接口都是操作前后台数据,所以需要保证数据的安全性,最好采用https协议
    2. 接口用来操作数据,与网址有区别,所以用特定的关键字表示接口,api
      1. https://api.baidu.com
      2. https://www.baidu.com/api
    3. 接口操作的数据称之为资源,在url中只体现资源名词,不体现操作资源的方式 动词
      1. 常规资源接口;
        1. https://api.baidu.com/books/
        2. https://api.baidu.com/books/(pk)/
      2. 非常规接口;和某资源不是特别密切或是不是一种资源
        1. https://api.baidu.com/login/
        2. https://api.baidu.com/place/search/
    4. 如果一个资源存在多版本结果,在url连接中要用特定符号来兼容多版本共存
      1. v1/v2;
        1. https://api.baidu.com/v1/books/
        2. https://api.baidu.com/v2/books/
    5. 群资源操作一般还有额外的限制条件,如排序、限制条数、分页等等
      1. 采用?限制条件;https://api.baidu.com/books/?ordering=-price&limit=3
  2. 请求方式

    1. 五大请求方式;get、post、put、patch、delete
      1. get;获取单个或多个资源
        1. https://api.baidu.com/books/
        2. https://api.baidu.com/books/(pk)/
      2. post;新增单个或多个资源
        1. https://api.baidu.com/books/
        2. 单增,提交单个数据字典,完成单增,返回单个结果对象
        3. 群增,提交多个数据字典,完成多增,返回多个结果对象
      3. put;整体修改单个或多个资源
        1. 整体修改多个,提供多个数据字典的数组(数据字典中要包含主键),完成修改,返回多个结果对象
        2. 整体修改单个,提供单个数据字典(主键在url中体现)完成单改,返回单个结果对象
      4. patch;局部修改单个或多个资源
        1. 方式与put请求相同吗,不同点;操作的资源如果有5个key-value键值对,put请求提供的字典必须报包含所有的键值资源,patch只需要携带需要修改的资源
      5. delete;删除单个或多个资源
        1. 多删,提供多个资源的主键数据,完成群删,
        2. 单删,不许要提供额外的数据资源,
        3. 不需要返回资源,但一般返回结果消息
  3. 响应结果

    1. 响应对象中要包含网络状态吗(网络状态信息与网络状态码是捆绑出先的)

      1. 1XX;基本信息
      2. 2XX;成功 200基本 201新增成功
      3. 3XX;重定向
      4. 4XX;客户端错误
      5. 5XX;服务端错误
    2. 数据状态码(一般是后台规定的)

      1. 0;成功
      2. 1;失败 - 1XX;具体失败信息(要在接口文档中写明)
      3. 2;无数据 - 2XX;具体无数据信息(要在接口文档中写明)
      4. 数据状态吗的信息(一般不仅仅是对数据状态吗的解释,更多是对结果的描述,给前台开发者阅读)
    3. 数据结果(常量,数组,字典),如果有子资源(图片,音频,视频),返回资源的url连接

      {
        "status": 0,
        'msg':'ok',
        'results':[{
          'name': '西游记',
          'img': 'https://api.baidu.com/media/book/xyj.png'
        },{}]
      }
      
posted @ 2019-12-23 21:34  🍞面包🍞  阅读(221)  评论(0编辑  收藏  举报