一、Restfull介绍
参考资料: https://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html
此系列是python框架学习系列,根据相关资料学习整理,本篇是drf框架学习的第一篇。
- REST,即Representational State Transfer的缩写,既”表现层状态转化”。
- RESTful架构:
- 每一个URI代表一种资源;
- 客户端和服务器之间,传递这种资源的某种表现层;
- 客户端通过四个HTTP动词,对服务器端资源进行操作,实现”表现层状态转化”。
(1)、格式
https://api.example.com/v1/zoos
(2)、资源操作类型
GET(SELECT)
:从服务器获取资源(一项或多项)POST(CREATE)
:在服务器新建一个资源PUT(UPDATE)
:在服务器端更新资源(客户端需要提供改变后的完成资源)PATCH(UPDATE)
:在服务端更新资源(客户端提供改变哪个属性),通常是部分更新DELETE(DELETE)
:删除资源OPTION
:获取资源哪些属性是可以改变的HEAD
:获取资源元数据
(3)、样例
GET https://api.example.com/v1/zoos
: 列出所有动物园POST https://api.example.com/v1/zoos
: 新建一个动物园GET https://api.example.com/v1/zoos/id
: 获取某个指定动物园信息PUT https://api.example.com/v1/zoos/id
: 更新某个指定动物园信息(提供该动物园全部信息)PATCH https://api.example.com/v1/zoos/id
: 更新某个指定动物园信息(提供该动物园部分信息)DELETE https://api.example.com/v1/zoos/id
: 删除某个动物园GET https://api.example.com/v1/zoos/id/animal
: 列出某个指定动物园的所有动物DELETE https://api.example.com/v1/zoos/id/animals/id
:删除某个指定动物园的指定动物
(4)、状态码
200 OK ---[GET]
:成功,幂等操作201 CREATED ---[POST/PUT/PATCH]
:新建或修改数据成功202 Accept ---[*]
:请求进入后台排队204 NO CONTENT ---[DELETE]
:用户删除数据成功400 INVALID REQUEST ---[POST/PUT/PATCH]
:用户发出的请求错误,服务器没有进行相应处理,此操作幂等401 Unauthorized --[*]
:用户没有权限(令牌,账户,密码错误)403 Forbidden ---[*]
:用户得到授权,但是访问被禁止406 Not Acceptable ---[GET]
:用户请求格式不可得(例如用户请求json,但只有xml)410 Gone ---[GET]
: 请求的资源被永久删除422 Unprocesable entity ---[POST/PUT/PATCH]
:创建一个对象时,发生验证错误