目前主流的三種web服務交互方案: REST (Representational State Transfer) 表徵性狀態轉移 SOAP (Simple Object Access Protocol)簡單的對象訪問協議 XML RPC (XML Remote Procedure Call)基於XM ...
目前主流的三種web服務交互方案:
REST (Representational State Transfer) 表徵性狀態轉移
SOAP (Simple Object Access Protocol)簡單的對象訪問協議
XML-RPC (XML Remote Procedure Call)基於XML的遠程過程調用
但最為流行最為常用就是restful,而當一個架構符合REST的約束條件和原則,我們就稱它為restful架構。
為了避免明文傳輸,更好的維護數據傳輸時的安全性,restful規範推薦使用https替代http。
1.restful規範就是在想要完成程式間數據交互的代碼時所需要的遵循的規範,它視網上的一切數據為資源,所有的操作都是在對資源進行增刪改查,所以這是一種面向資源式的編程。
2..如果說資料庫就是資源庫,那麼URL就是用於檢索的目錄和直達資源的高速路。為了避免歧路亡羊的事情發生,所以在編寫URL的時候必須遵循固定的規範,表達出的信息也要清晰明確,不至於產生歧義。
在URL中要明確體現一下幾點:
1.api標識:http://www.xxxx.com/api/...
2.版本信息:http://www.xxxx.com/api/v1...
3.用名詞而不是動詞來表示所訪問資源的種類,所用名詞往往與資料庫表格的名稱相同
3.如果要通過在url中添加一些篩選條件,實現對資源的精准定位和對狀態的精確控制,一般是以?+關鍵字= int整型 (需要在前段做好正則匹配)
http://www.luffycity.com/api/user/?page=1&type=9 #
4.restful規範下的URL代碼比FBV下的URL要更加精簡,只需要一個URL就能完成所有操作,因為他是根據不同的請求方法來判斷對數據進行何種操作,而不需要分別為增刪改查各設置一個URL。
返回值:要以json的形式返回值,delete的返回值為空
GET http://www.luffycity.com/api/user/
[
{'id':1,'name':'alex','age':19},
{'id':1,'name':'alex','age':19},
]
POST http://www.luffycity.com/api/user/
{'id':1,'name':'alex','age':19}
6.給用戶返回狀態碼:GET http://www.luffycity.com/api/user/2/ {'id':2,'name':'alex','age':19} PUT http://www.luffycity.com/api/user/2/ {'id':2,'name':'alex','age':19} PATCH https//www.luffycity.com/api/user/2/ {'id':2,'name':'alex','age':19} DELETE https//www.luffycity.com/api/user/2/ 空
- 200,成功- 300,301永久 /302臨時
- 400,403拒絕 /404找不到
- 500,服務端代碼錯誤
操作異常時,要返回錯誤信息
{ error: "Invalid API key"}
要為可能跳轉的下一個網頁要提供介面:Hypermedia AP
{
'id':2,
'name':'alex',
'age':19,
'depart': "http://www.xxx.com/api/user/30/"
}