【问题标题】:Spring MVC PUT versus PATCHSpring MVC PUT 与 PATCH
【发布时间】:2016-01-21 17:20:41
【问题描述】:

对于我的用例,我应该使用 PATCH 进行部分更新。但我只是想知道 springMVC 与 RequestMEthod.PUT 与 RequestMethod.PATCH 有何不同?

仅供参考,@RequestBody 对象正在以相同的方式使用 PUT 或 PATCH 填充。

【问题讨论】:

  • Spring MVC 不做任何事情。它所做的“全部”是接收请求并让您从控制器方法处理它。您可以随心所欲。
  • 添加一个解释如何使用补丁的好帖子的链接,因为我觉得在这种情况下会错过它:williamdurand.fr/2014/02/14/please-do-not-patch-like-an-idiot
  • 我整理了一个 post,描述了在 Spring 中使用 PATCH 的方法。 GitHub 上提供了一个工作示例。

标签: spring rest patch put


【解决方案1】:

PUT 和 PATCH 是 HTTP 方法。

Spring 的 RequestMethod 只包装它们。所以问题应该是何时使用HTTP PUTHTTP PATCH

根据this

HTTP RFC 规定 PUT 必须采用完整的新资源 表示为请求实体。

虽然

PATCH 与 PUT 类似,它更新资源,但与 PUT 不同的是,它 应用增量而不是替换整个资源。

对于简单的资源表示,差异通常并不重要。

所以因为它只是语义(一旦你收到请求,你可以在控制器中做任何你想做的事情),我想你的 rest-api 不包括复杂的更新,比如说,列表的一部分或特定字段在嵌套对象中 - 我相信 PUT 会是更好的选择。

【讨论】:

    猜你喜欢
    • 2018-01-08
    • 2020-01-09
    • 2021-10-12
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    相关资源
    最近更新 更多