drf初识
Posted shenblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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//)
以上是关于drf初识的主要内容,如果未能解决你的问题,请参考以下文章
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识OpenGL 片段着色器(Fragment Shader)