patch和put方法的區別


patch方法用來更新局部資源

假設有一個UserInfo,里面有userId, userName, userGender等10個字段。可編輯功能因為需求,在某個特別的頁面里只能修改userName。通常把一個包含了修改后userName的完整userInfo對象傳給后端,做完整更新,這種做法會浪費寬帶。於是patch誕生,只傳一個userName到指定資源去,表示該請求是一個局部更新,后端僅更新接收到的字段。

put雖然也是更新資源,但要求前端提供的一定是一個完整的資源對象,理論上說如果用了put,但卻沒有提供完整的UserInfo,那么缺了的那些字段應該被清空。

如果后端程序沒有按照標准對兩個方法做不同的處理,在程序里把方法名從put改成patchm沒有任何影響。

PATCH 與 PUT 屬性上的一個重要區別還在於:PUT 是冪等的,而 PATCH 不是冪等(表示一個操作執行任意次對系統的影響跟一次是相同的)的。

POST 方法不是冪等的,若反復執行多次對應的每一次都會創建一個新資源。如果請求超時,則需要回答這一問題:資源是否已經在服務端創建了?能否再重試一次或檢查資源列表?而對於冪等方法不存在這一個問題,我們可以放心地多次請求。

 

原文:https://blog.csdn.net/varyall/article/details/80895945


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM