NetCore專案實戰篇03---HTTP Patch 更新資料

zhengwei_cq發表於2020-05-04

一、什麼是HTPP Patch

HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
而patch其實就是對新增五種請求方式中的put的補充。用來對已知資源進行區域性更新。
補充一下,PATCH 與 PUT 屬性上的一個重要區別還在於:PUT 是冪等的,而 PATCH 不是冪等的。
冪等是一個數學和計算機學概念,在計算機範疇內表示一個操作執行任意次對系統的影響跟一次是相同

二、打個比喻

假設我們有一個UserInfo,裡面有userId, userName, userGender等10個欄位。可你的編輯功能因為需求,在某個特別的頁面裡只能修改userName,這時候的更新怎麼做?
人們通常(為徒省事)把一個包含了修改後userName的完整userInfo物件傳給後端,做完整更新。但仔細想想,這種做法感覺有點二,而且真心浪費頻寬(純技術上講,你不關心頻寬那是你土豪)。
於是patch誕生,只傳一個userName到指定資源去,表示該請求是一個區域性更新,後端僅更新接收到的欄位。
而put雖然也是更新資源,但要求前端提供的一定是一個完整的資源物件,理論上說,如果你用了put,但卻沒有提供完整的UserInfo,那麼缺了的那些欄位應該被清空。
 
三、使用方法
1、在之前開發的專案中使用者控制器中新增一個patch方法,用來更新使用者資訊

 

 2、請求時如果只更新使用者公司名,請求格式如下:

 

 3、如要更新集合內用如下的方法

 

 4、請求更新集合的資料時value用陣列就行,如下:

 

 

相關文章