首页 > 其他 > 详细

django DRF

时间:2019-10-14 20:13:23      阅读:84      评论:0      收藏:0      [点我收藏+]

DjangoRestFramework

1.安装:

pip install djangorestframework

2. restful规范:

2.1 API与用户通信协议,总是使用https协议(我们现在用的大部分都是http)

2.2 域名

  https://api.cainiao.com  尽量将API部署在专用域名(会存在跨域问题)

  https://cainiao.com/api/  API很简单(推荐使用)

2.3 版本

  URL,如:https://api.cainiao.com/v1/

  存在跨域问题咱不慌,请往这里看=>:https://www.cnblogs.com/xingxingnbsp/p/10644135.html

2.4 路径,将网络上的所有东西都看成是资源,均使用名词表示(可以使用复数)

  https://api.cainiao.com/v1/zoos

  https://api.cainiao.com/v1/animls

  https://api.cainiao.com/v1/employees

2.5 method(请求方式)

  GET : 从服务器取出资源(一项或多项)

  POST : 在服务器新建一个资源

  PUT : 在服务器更新资源(客户端提供改变后的完整资源)

  PATCH : 在服务器更新资源(客户端提供改变的属性)

  DELETE : 从服务器删除资源

2.6 过滤,通过在url上传参的形式传递搜索条件

  https://api.cainiao.com/v1/zoos?limit=10  : 指定返回记录的数量

  https://api.cainiao.com/v1/zoos?offset=10  : 指定返回记录的数量

  https://api.cainiao.com/v1/zoos?page=2&per_page=100  : 指定第几页,以及每页的记录数

  https://api.cainiao.com/v1/zoos?sortby=name&order=asc  : 指定返回结果按照哪个属性排序,以及排序规则

2.7 状态码

  200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。

  201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。

  202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)

  204 NO CONTENT - [DELETE]:用户删除数据成功。

  400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。

  401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。

  403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。

  404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。

  406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。

  410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。

  422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

  500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

  更多看这里:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

2.8 错误处理

{
    error:"lnvalid API key"
}

 

2.9 返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范。

  GET/collection : 返回资源对象的列表(数组)

  GET/collection/response : 返回单个资源对象

  POST/collection : 返回新生成的资源对象

  PUT/collection/response : 返回完整的资源对象

  PATCH/collection/response :返回完整的资源对象

  DELETE/collection/response :返回一个空文档

2.10Hypermedia API,RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。

 

{"link": {
  "rel":   "collection https://www.cainiao.com/zoos",
  "href":  "https://api.cainiao.com/zoos",
  "title": "List of zoos",
  "type":  "application/vnd.yourformat+json"
}}

 

django DRF

原文:https://www.cnblogs.com/xingxingnbsp/p/11673136.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!