Restful API
- REST,即Representational State Transfer的縮寫。直接翻譯的意思是"表現層狀態轉化"。它是一種互聯網應用程序的API設計理念:URL定位資源,用HTTP動詞(GET,POST,DELETE,DETC)描述操做。
實現基礎
- 近年來移動互聯網的發展,前端設備層出不窮(手機、平板、桌面電腦、其餘專用設備......),所以,必須有一種統一的機制,方便不一樣的前端設備與後端進行通訊,因而RESTful誕生了,它能夠經過一套統一的接口爲 Web,iOS和Android提供服務。
![RESTful api RESTful api](http://static.javashuo.com/static/loading.gif)
經常使用的URL請求方式
- HEAD(SELECT)只獲取某個資源的頭部信息
- GET(SELECT)獲取資源
- POST(CREATE)建立資源
- PATCH(UPDATE)更新資源的部分屬性(不多用,通常用POST代替)
- PUT(UPDATE)更新資源,客戶端須要提供新建資源的全部屬性
- DELETE(DELETE)刪除資源
狀態碼
狀態碼
字段名稱爲:code
200 OK [GET] 服務器成功返回用戶請求的數據,該操做是冪等的(Idempotent)
201 CREATED [POST/PUT/PATCH] 用戶新建或修改數據成功
202 ACCEPTED [*] 表示一個請求已經進入後臺排隊(異步任務)
204 NO CONTENT [DELETE] 用戶刪除數據成功
400 INVALID REQUEST [POST/PUT/PATCH] 用戶發出的請求有錯誤,服務器沒有進行新建或修改數據的操做,該操做是冪等的
401 UNAUTHORIZED [*] 表示用戶沒有權限(令牌、用戶名、密碼錯誤)
403 FORBIDDEN [*] 表示用戶獲得受權(與401錯誤相對),可是訪問是被禁止的
404 NOT FOUND [*] 用戶發出的請求針對的是不存在的記錄,服務器沒有進行操做,該操做是冪等的
406 NOT ACCEPTABLE [GET] 用戶請求的格式不可得(好比用戶請求JSON格式,可是隻有XML格式)
410 GONE [GET] 用戶請求的資源被永久刪除,且不會再獲得的
422 UNPROCESABLE ENTITY [POST/PUT/PATCH] 當建立一個對象時,發生一個驗證錯誤
500 INTERNAL SERVER ERROR [*] 服務器發生錯誤,用戶將沒法判斷髮出的請求是否成功
注意
- 爲了簡便,在web設計中,有時候會統一"code:0"表明請求成功,"code:1"表明請求失敗,狀態碼爲0,對應返回data字段,狀態碼爲1對應返回message字段.