咱们先来谈谈什么是接口?
我们常说的一个接口其实就是一个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无关,它只是一种规范。