天天看點

NetCore項目實戰篇03---HTTP Patch 更新資料

一、什麼是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方法,用來更新使用者資訊

NetCore項目實戰篇03---HTTP Patch 更新資料

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

NetCore項目實戰篇03---HTTP Patch 更新資料

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

NetCore項目實戰篇03---HTTP Patch 更新資料

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

NetCore項目實戰篇03---HTTP Patch 更新資料