2016-01-21 64 views
-1

對於我的用例,我應該使用PATCH來進行部分更新。但我只是想知道什麼springMVC與RequestMEthod.PUT與RequestMethod.PATCH不同?Spring MVC PUT與PATCH

FYI @RequestBody對象以PUT或PATCH方式填充的方式相同。

+2

Spring MVC不做任何事情。它所做的「全部」是接收請求並讓你從控制器方法處理它。這取決於你做任何你想做的事情。 –

+1

添加一個鏈接到一個很好的帖子,解釋如何使用補丁,因爲我有這種情況下它會被遺漏的感覺:http://williamdurandrand.fr/2014/02/14/please-do-not-patch樣-AN-白癡/ – Augusto

回答

0

PUT和PATCH是HTTP方法。

Spring的RequestMethod只包裝它們。所以問題應該是何時使用HTTP PUTHTTP PATCH

根據this

的HTTP RFC規定PUT必須採取一個全新的資源 表示作爲請求實體。

雖然

PATCH就像擺在那它更新的資源,但不像PUT,它 適用的增量,而不是更換整個資源。

對於簡單的資源表示,差異通常並不重要。

所以,因爲它是唯一的語義(你可以做任何你想做的控制器一旦你的要求),我想你的REST的API不包括的,比如複雜的更新,清單的一部分或嵌套對象中的特定字段 - 我相信PUT將是更好的選擇。