RESTful架構(gòu)

中文翻譯為“表述性狀態(tài)轉(zhuǎn)移,也就是面向資源和使用Http動詞,就已經(jīng)很Restful了

我們總結(jié)一下什么是RESTful架構(gòu):

 ?。?)每一個URI代表一種資源;

 ?。?)客戶端和服務(wù)器之間,傳遞這種資源的某種表現(xiàn)層;

 ?。?)客戶端通過四個HTTP動詞,對服務(wù)器端資源進行操作,實現(xiàn)"表現(xiàn)層狀態(tài)轉(zhuǎn)化"。

RESTful架構(gòu)應(yīng)該遵循統(tǒng)一接口原則,統(tǒng)一接口包含了一組受限的預(yù)定義的操作,不論什么樣的資源,都是通過使用相同的接口進行資源的訪問。接口應(yīng)該使用標準的HTTP方法如GET,PUT和POST,并遵循這些方法的語義。

如果按照HTTP方法的語義來暴露資源,那么接口將會擁有安全性和冪等性的特性,例如GET和HEAD請求都是安全的, 無論請求多少次,都不會改變服務(wù)器狀態(tài)。而GET、HEAD、PUT和DELETE請求都是冪等的,無論對資源操作多少次, 結(jié)果總是一樣的,后面的請求并不會產(chǎn)生比第一次更多的影響。

下面列出了GET,DELETE,PUT和POST的典型用法:

GET

安全且冪等

獲取表示

變更時獲取表示(緩存)

200(OK) - 表示已在響應(yīng)中發(fā)出

204(無內(nèi)容) - 資源有空表示

301(Moved Permanently) - 資源的URI已被更新

303(See Other) - 其他(如,負載均衡)

304(not modified)- 資源未更改(緩存)

400 (bad request)- 指代壞請求(如,參數(shù)錯誤)

404 (not found)- 資源不存在

406 (not acceptable)- 服務(wù)端不支持所需表示

500 (internal server error)- 通用錯誤響應(yīng)

503 (Service Unavailable)- 服務(wù)端當前無法處理請求

POST

不安全且不冪等

使用服務(wù)端管理的(自動產(chǎn)生)的實例號創(chuàng)建資源

創(chuàng)建子資源

部分更新資源

如果沒有被修改,則不過更新資源(樂觀鎖)

200(OK)- 如果現(xiàn)有資源已被更改

201(created)- 如果新資源被創(chuàng)建

202(accepted)- 已接受處理請求但尚未完成(異步處理)

301(Moved Permanently)- 資源的URI被更新

303(See Other)- 其他(如,負載均衡)

400(bad request)- 指代壞請求

404 (not found)- 資源不存在

406 (not acceptable)- 服務(wù)端不支持所需表示

409 (conflict)- 通用沖突

412 (Precondition Failed)- 前置條件失?。ㄈ鐖?zhí)行條件更新時的沖突)

415 (unsupported media type)- 接受到的表示不受支持

500 (internal server error)- 通用錯誤響應(yīng)

503 (Service Unavailable)- 服務(wù)當前無法處理請求

PUT

不安全但冪等

用客戶端管理的實例號創(chuàng)建一個資源

通過替換的方式更新資源

如果未被修改,則更新資源(樂觀鎖)

200 (OK)- 如果已存在資源被更改

201 (created)- 如果新資源被創(chuàng)建

301(Moved Permanently)- 資源的URI已更改

303 (See Other)- 其他(如,負載均衡)

400 (bad request)- 指代壞請求

404 (not found)- 資源不存在

406 (not acceptable)- 服務(wù)端不支持所需表示

409 (conflict)- 通用沖突

412 (Precondition Failed)- 前置條件失?。ㄈ鐖?zhí)行條件更新時的沖突)

415 (unsupported media type)- 接受到的表示不受支持

500 (internal server error)- 通用錯誤響應(yīng)

503 (Service Unavailable)- 服務(wù)當前無法處理請求

DELETE

不安全但冪等

刪除資源

200 (OK)- 資源已被刪除

301 (Moved Permanently)- 資源的URI已更改

303 (See Other)- 其他,如負載均衡

400 (bad request)- 指代壞請求

404 (not found)- 資源不存在

409 (conflict)- 通用沖突

500 (internal server error)- 通用錯誤響應(yīng)

503 (Service Unavailable)- 服務(wù)端當前無法處理請求

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容