Django中的RESTful
Posted zxt-cn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中的RESTful相关的知识,希望对你有一定的参考价值。
一:谈谈你对restful规范的理解:
-restful其实就是一种编写接口的设计风格,如果一个架构满足rest的三个原则,那么他就是restful架构,
1. 每一个URL代表一种资源
2.通过在请求头中用Accept和Content-type字段指定其表现形式,客户端和服务器之间传递这种表现层。
3.客户端通过HTTP四个动词,对服务器资源进行操作,实现‘表现层的状态转换’,GET用于获取资源,POST用于新建资源,PUT用于更新资源,DElETE用于删除资源。
二;
2. 你的restful是怎么学的? - 因为之前公司要写这样项目 - 接口 - 公司要做前后端分离的项目 - 公司要做微信小程序的开发
三:设计 方法:
1.域名:应该尽量将API部署在专用域名之下:
2.版本:应该将API的版本号放入URL
3.路径Endpoint:每个网址代表一种资源,只能有名词,不能有动词,名词应该使用复数
4.对于资源的具体操作类型,由HTTP动词表示。
GET(SELECT):从服务器取出资源(一项或多项)。
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
DELETE(DELETE):从服务器删除资源。
5.过滤信息:如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。
6.状态码:
7.错误处理:
8.返回结果。
针对不同操作,服务器向用户返回的结果应该符合以下规范。
- GET /collection:返回资源对象的列表(数组)
- GET /collection/resource:返回单个资源对象
- POST /collection:返回新生成的资源对象
- PUT /collection/resource:返回完整的资源对象
- PATCH /collection/resource:返回完整的资源对象
- DELETE /collection/resource:返回一个空文档。
9.超媒体:
RESTful API最好做到Hypermedia(即返回结果中提供链接,连向其他API方法),使得用户不查文档,也知道下一步应该做什么。
比如,Github的API就是这种设计,访问api.github.com会得到一个所有可用API的网址列表
以上是关于Django中的RESTful的主要内容,如果未能解决你的问题,请参考以下文章
Django中CBV和Restful API中的APIView源码分析
Django中的RESTful api在Django中使用inbult视图,无需创建2个url