restful规范
必要的了解:
1、django请求生命周期
- 执行遵循wsgi协议的模块(socket服务端)
- 中间件(路由匹配)
- 视图函数(业务处理:ORM、模板渲染)
- 中间件
- wsgi返回
2、什么是wsgi
- web服务网关接口。是一套协议
- 实现该协议的模块:wsgiref,uwsgi
3、视图
- FBV
- url——函数
- CBV
- url——view
4、django rest framework
5、restful规范
什么是接口?
URL
约束(Java/C#)
restful 规范:
1、根据method不同,进行不同操作
url(r'^order_add/', views.order_add),
url(r'^order_delete/', views.order_delete),
…………
改成:
url(r'^order/', views.order),
…………
def order(request):
if request.method == 'GET':
return HttpResponse('获取订单')
elif request.method == 'POST':
return HttpResponse('创建订单')
elif request.method == 'DELETE':
return HttpResponse('删除订单')
…………
2、API与用户的通信协议,总是使用HTTPS协议
3、域名体现出是接口
- https://api.example.com
- https://example.com/api/
4、体现版本信息
-
https://v3.bootcss.com
-
https://v4.bootcss.com
或者放在请求头中
5、面向资源编程
网络上的任何东西都是一个资源,推荐使用名词表示
https://api.example.com/v1/zoos
https://api.example.com/v2/animals
6、过滤
通过在url上使用传参的形式传递搜索条件
https://api.example.com/v2/zoos?page=1&size=10
7、响应时设置状态码
-
200
-
300
-
400
-
500
一般采用 状态码 + code
8、返回错误信息
{
code: 10000,
error: 'XXX错误',
}
9、返回结果
针对不同操作,服务器向用户返回的结果应该符合以下规范:
- GET /collection:返回资源对象的列表(数组)
- GET /collection/resource:返回单个资源对象
- POST /collection:返回新生成的资源对象
- PUT /collection/resource:返回完整的资源对象
- PATCH /collection/resource:返回完整的资源对象
- DELETE /collection/resource:返回一个空文档
10、Hypermedia API
ret = {
code: 10000,
data: {
'id': 1,
'name': '小强',
'detail': 'https://www.luffycity.com/detail/1'
}
}