目前主流的三種web服務交互方案: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.用名詞而不是動詞來表示所訪問資源的種類,所用名詞每每與數據庫表格的名稱相同json
3.若是要經過在url中添加一些篩選條件,實現對資源的精準定位和對狀態的精確控制,通常是以?+關鍵字= int整型 (須要在前段作好正則匹配)
http://www.luffycity.com/api/user/?page=1&type=9 #api
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}restful
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/ 空6.給用戶返回狀態碼:
操做異常時,要返回錯誤信息架構
{ error: "Invalid API key"}
要爲可能跳轉的下一個網頁要提供接口:Hypermedia AP
{
'id':2,
'name':'alex',
'age':19,
'depart': "http://www.xxx.com/api/user/30/"
}url