drf初识

drf:Django-restframework

接口

规定了提交请求参数的请求方式,访问其可以获取响应的反馈数据的url链接;

url链接:请求方法+请求参数+响应数据结果;

drf框架安装

# 使用drf时,要在settings中注册
pip install djangorestframework

restful接口规范

URL设计

数据的安全保障

url链接一般采用https协议进行传输,可以提高数据交互过程中的安全性;

接口特征表现

用api关键字标识接口url,代表该请求url链接是完成前后台数据交互的;

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

多数据版本共存

在url链接中标识数据版本(只有在一种数据资源有多版本的情况下);

https://api.baidu.com/v1
https://api.baidu.com/v2

资源

接口一般都是完成前后台数据的交互,交互的数据称之为资源;

一般提倡用资源的复数形式,在url链接中尽量不要出现操作资源的动词

资源操作由请求方式决定

get/post/put/patch/delete
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)/
    单删,不需要提供额外数据,完成单删,不做任何资源返回(一般我们会返回结果信息:成功|失败)

响应状态码

正常响应

2XX

200:常规请求
201:创建成功

重定向响应

3XX

301:永久重定向
302:暂时重定向

客户端异常

4XX

403:请求无权限
404:请求路径不存在
405:请求方法不存在

服务器异常

5XX

500:服务器异常

响应结果

  • 响应数据要有状态码、状态信息和数据本身

    {
        "status": 0,
        "msg": "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"
            }
            ...
            ]
    }
    
  • 需要url请求的资源需要访问资源的请求链接

    {
        "status": 0,
        "msg": "ok",
        "results":[
            {
                "name":"肯德基(罗餐厅)",
                "img": "https://image.baidu.com/kfc/001.png"
            }
            ...
            ]
    }
    

postman的安装

安装链接

YAPI的使用

[网页链接](http://yapi.demo.qunar.com//)

操作

原文地址:https://www.cnblogs.com/shenblog/p/12103827.html