restful规范
咱们先来谈谈什么是接口?
我们常说的一个接口其实就是一个URL。
在java和c#中,接口也是一种约束。
# 约束继承(实现)了他的类中必须含有IFoo中的方法 interface IFoo: def func(self): pass class Foo(IFoo): def func(self): print(11111)
在python中不会有这种情况,咱们只做简单的了解。
主要来看看restful规范有哪些?
restful规范
1、根据method不同,进行不同操作
2、面向资源编程
url结尾建议是名词。
3、体现版本
情况一:
情况二:
为了防止出现跨域情况,建议用情况一。
4、体现是API
5. https
为了安全,我们建议用https,但是要破费了。
6. 响应式设置状态码
我们常用的状态码:
-
200
- 请求成功
-
300
-
301
- 永久重定向
-
302
- 临时重定向
-
-
400
-
403
- 权限问题
-
404
- 找不到页面
-
-
500
- 服务器问题
这是浏览器为我们响应式提供的通用状态码,但并不是一成不变的。我们也可以自定义返回状态码。
return HttpResponse('abcdefg',status=300)
7. 条件
一般情况我们需要筛选才能得到我们想要的数据,那么就要在url中添加相应的条件。
8. 返回值
https://www.luffycity.com/api/v2/salary GET: 所有列表 { code: 10000, data: [ {'id':1,'title':'高亮'}, {'id':1,'title':'龙泰'}, {'id':1,'title':'小东北'}, ] } POST: 返回新增的数据 {'id':1,'title':'高亮'} https://www.luffycity.com/api/v2/salary/1/ GET: 获取单条数据 {'id':1,'title':'高亮'} PUT:更新 {'id':1,'title':'高亮'} PATCH: 局部更新 {'id':1,'title':'高亮'} DELETE:删除
9. 返回错误信息
{ code: 100001, error: 'xxx错误' }
10、Hypermedia API
为了方便,我们会看情况在里面新添加一条url。
总结:
看完了restful规范,我们配置接口时,必须要按照规范来吗?也不一定,还是要看需求。这只是一种规范,只是建议大家按照规范来使用而已。
restful与Django无关,与rest-framework无关,它只是一种规范。