drf 接口

drf : Django-restframework

安装:pip install djangorestframework

使用drf时,要在settings中注册

接口

什么是接口:规定了提交请求参数的请求方式的url链接,访问其可以获得响应的反馈数据的url链接

  四部分:url链接 + 请求方式 + 请求参数 + 响应数据

    https://www.baidu.com (网址)

    https://api.baidu.map/search (接口)

  url链接:长得像返回数据的url链接

  请求方式:get、post、put、patch、delete 

  请求参数:json或xml格式的key-value类型数据

     ak:6E823f587c95f0148c19993539b99295

    region:上海

    query:肯德基

    output:json

  响应结果:json或xml格式的数据

    上方请求参数的output参数值决定了响应数据的格式

 

{
"status":0,
"message":"ok",
"results":[
  {
    "name":"肯德基(罗餐厅)",
    "location":{
    "lat":31.415354,
    "lng":121.357339
    },
    "address":"月罗路2380号",
    "province":"上海市",
    "city":"上海市",
    "area":"宝山区",
    "street_id":"339ed41ae1d6dc320a5cb37c",
    "telephone":"(021)56761006",
    "detail":1,
    "uid":"339ed41ae1d6dc320a5cb37c"
  }
  ...
  ]
}

 

接口文档的编写:Yapi

  http://yapi.demo.qunar.com/

   访问测试网站

 

  创建接口项目

 

  创建接口

 

  编写接口

接口测试工具:Postman

  Postman是一款接口调试工具,是一款免费的可视化软件,同时支持各种操作系统平台,是测试接口的首选工具。 Postman可以直接从官网:https://www.getpostman.com/downloads/下载获得,然后进行傻瓜式安装。

       工作面板

     简易的get请求

     

    简易的post请求

     

    案例:请求百度地图接口

restful接口规范

  1.url链接:

    1)接口都是操作前后台数据的,所以要保证爱护据的安全性

采用https协议

    2)接口用来操作数据,与网址(操作页面)有区别,所以用特定的关键字表示接口

      api关键字

        - https://api.baidu.com

        - https://www.baidu.com/api

    3)接口操作的数据称之为资源,在url中只体现资源名称(名词),不体现操作资源的方式动词

      常规资源接口

        - https://www.baidu.com/books/

        - https://www.baidu.com/books/(pk)/

      非常规接口 - 和某资源不是特别密切或者不止一种资源

        - https://api.baidu.com/login/

        - https://api.baidu.com/place/search

    4)如果一个资源存在多个版本结果,在url链接中要用特定的符号来兼容多版本共存

      v1|v2

        - https://www.baidu.com/v1/books/

        - https://www.baidu.com/v2/books/

5)群资源操作,一般还有额外的限制条件,如排序、限制测试、分页等等?    

    限制条件

      - https://www.baidu.com/v1/books/?ordering=-price&limit=3

2.请求方式

  五大请求方式

    get:获取单个或多个资源

      - https://api.baidu.com/books/ 群查,返回多个结果对象

      - https://api.baidu.com/books/(pk)/ 单查,返回单个结果对象

    post :新增单个或多个资源

      - https://api.baidu.com/books/

        单增,提交单个数据字典,完成单增,返回单个结果对象

        群增,提供多个数据字典的数据,完成群增,返回多个结果对象

    put:整体修改单个或多个资源

      - https://api.baidu.com/books/

        整体修改多个,提供多个数据字典的数组(数据字典中包含主键),完成群改,返回多个结果对象

      - https://api.baidu.com/books/(pk)/

        整体修改单个,提供单个数据字典(主键在url中体现),完成单改,返回单个结果对象

    patch:局部修改单个或多个资源

      方式与put完全相同,不同的是:操作的资源如果有5个key-value键值对,put请求提供的字典必须全部包含,但patch提供的字典包含的键值对0~5个都可以

    delete:删除单个或多个资源

      - https://api.baidu.com/books/

        多删,提供多个资源主键数据,完成群删,不做任何资源返回(一般我们会返回结果信息:成功|失败)

      - https://api.baidu.com/books/(pk)/

        单删,不需要提供额外数据,完成单删,不做任何资源返回(一般我们会返回结果信息:成功|失败)

3.响应结果

  响应对象中要包含网络状态码(网络状态信息和网络状态码捆绑出现,不要额外设置):

    1xx:基本信息

    2xx:成功 - 200基本 201新增成功

    3xx:重定向

    4xx:客户端错误 - 400错误请求;403请求无权限;404请求资源不存在

    5xx:服务端错误 - 500服务器错误

  数据状态码(一般都是前后台约定规则):

    0:成功

    1:失败 - 1xx:具体失败信息(要在接口文档中明确写出)

    2:无数据 - 2xx:具体无数据信息(要在接口文档中明确写出)

  数据状态信息(一般不仅仅是对数据状态码的解释,更多是对结果的描述,给前台开发者阅读的)

  数据结果(常量、数组、字典),如果有子资源(图片、音频、视频),返回资源的url链接

    {
        "status": 0,
        "msg": 'ok',
        "results": [{
            "name": "西游记",
            "img": "https://api.baidu.com/media/book/xyj.png"
        }]
    }
原文地址:https://www.cnblogs.com/fjn839199790/p/12084790.html