zoukankan      html  css  js  c++  java
  • 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"
            }]
        }
  • 相关阅读:
    索引
    varnish它是一款高性能的http缓存服务器
    前端性能优化浅谈
    锁机制-SQL Server 数据库
    NET Core中NuGet包
    “干掉” if...else
    混搭.NET技术
    MONO x64 amd_x64
    跨平台移动开发UI语言 -XAML
    使用LinqToExcel读取Excel
  • 原文地址:https://www.cnblogs.com/fjn839199790/p/12084790.html
Copyright © 2011-2022 走看看