一 什么是restful
- rest与技术无关,代表的是一种软件架构风格
- rest从资源的角度审视整个 络,通过url获取的资源的表征,使应用转变状态
- 所有得数据都是资源,是restful的本质,是一种面向资源的架构
二 RESTful API设计
- API与用户的通信协议,总是使用HTTPs协议。
- 域名
- https://api.example.com 尽量将API部署在专用域名(会存在跨域问题)
- https://www.example.org/api/ API很简单
- 版本
- URL,如:https://api.example.com/v1/ 利用版本既可以保留原来的使用方法也可以开反新的版本
- 请求头 跨域时,引发发送多次请求
- 路径,视 络上任何东西都是资源,均使用名词表示,利用请求的方法来识别(可复数)
- https://api.example.com/v1/zoos
- https://api.example.com/v1/animals
- https://api.example.com/v1/employees
- method
- GET :从服务器取出资源(一项或多项)
- POST :在服务器新建一个资源
- PUT :在服务器更新资源(客户端提供改变后的完整资源)
- PATCH :在服务器更新资源(客户端提供改变的属性)部分资源
- DELETE :从服务器删除资源
- 过滤,通过在url上传参的形式传递搜索条件
- https://api.example.com/v1/zoosmit=10:指定返回记录的数量
- https://api.example.com/v1/zoosfset=10:指定返回记录的开始位置
- https://api.example.com/v1/zoosge=2&per_page=100:指定第几页,以及每页的记录数
- https://api.example.com/v1/zoosrtby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序
- https://api.example.com/v1/zoosimal_type_id=1:指定筛选条件
- 状态码
- 错误处理,应返回错误信息,error当做key。
1
2
3
- 返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范。
1
2
3
4
5
6
- Hypermedia API,RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么。
1
2
3
4
5
6
摘自:http://www.ruanyifeng.com/blog/2014/05/restful_api.html
三 基于Django实现
路由系统中:
视图函数中:
四 单利用django来传输数据方式
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!