咱們先來談談什么是接口?
我們常說的一個接口其實就是一個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無關,它只是一種規范。