1. 程式人生 > >restful介面規範(安全與冪等)

restful介面規範(安全與冪等)

GET/POST/PUT/DELETE四種方法

GET   安全且冪等     獲取表示    變更時獲取表示(快取)

200(OK) - 表示已在響應中發出
204(無內容) - 資源有空表示
301(Moved Permanently) - 資源的URI已被更新
303(See Other) - 其他(如,負載均衡)
304(not modified)- 資源未更改(快取)
400 (bad request)- 指代壞請求(如,引數錯誤)
404 (not found)- 資源不存在
406 (not acceptable)- 服務端不支援所需表示
500 (internal server error)- 通用錯誤響應
503 (Service Unavailable)- 服務端當前無法處理請求

POST   不安全且不冪等    使用服務端管理的(自動產生)的例項號建立資源      部分更新資源    如果沒有被修改,則不更新資源

比如說,下單,新增一條訂單成功了,但是又新增了一條訂單,又成功了,可能因為網路,本來想插入一條記錄的,那他就是不冪等的。因為在操作成功的情況下,又對資料庫進行了不好的影響。

200(OK)- 如果現有資源已被更改
201(created)- 如果新資源被建立
202(accepted)- 已接受處理請求但尚未完成(非同步處理)
301(Moved Permanently)- 資源的URI被更新
303(See Other)- 其他(如,負載均衡)
400(bad request)- 指代壞請求
404 (not found)- 資源不存在
406 (not acceptable)- 服務端不支援所需表示
409 (conflict)- 通用衝突
412 (Precondition Failed)- 前置條件失敗(如執行條件更新時的衝突)
415 (unsupported media type)- 接受到的表示不受支援
500 (internal server error)- 通用錯誤響應
503 (Service Unavailable)- 服務當前無法處理請求

PUT   不安全但冪等    用客戶端管理的例項號建立一個資源     通過替換的方式更新資源     如果未被修改,則更新資源(樂觀鎖)

比如說改工資,更新之後,工資還是沒有變化。所以他是冪等的,沒有對資料庫造成額外的影響。post方法就不一樣了,會生成兩個不同的id。

200 (OK)- 如果已存在資源被更改
201 (created)- 如果新資源被建立
301(Moved Permanently)- 資源的URI已更改
303 (See Other)- 其他(如,負載均衡)
400 (bad request)- 指代壞請求
404 (not found)- 資源不存在
406 (not acceptable)- 服務端不支援所需表示
409 (conflict)- 通用衝突
412 (Precondition Failed)- 前置條件失敗(如執行條件更新時的衝突)
415 (unsupported media type)- 接受到的表示不受支援
500 (internal server error)- 通用錯誤響應
503 (Service Unavailable)- 服務當前無法處理請求

DELETE   不安全但冪等     刪除資源  

 刪除資源肯定是不安全,  刪除對一個id進行操作,不會有額外的影響。所以冪等

200 (OK)- 資源已被刪除
301 (Moved Permanently)- 資源的URI已更改
303 (See Other)- 其他,如負載均衡
400 (bad request)- 指代壞請求
404 (not found)- 資源不存在
409 (conflict)- 通用衝突
500 (internal server error)- 通用錯誤響應
503 (Service Unavailable)- 服務端當前無法處理請求

安全 和 冪等 兩個詞的意思分別是

安全 就是不會出現  髒讀,幻讀,不可重複讀

冪等 就是在操作成功的前提條件下,會不會對資料庫造成額外的影響