【问题标题】:REST: PUT and how to handle partial entityREST:PUT 以及如何处理部分实体
【发布时间】:2012-12-13 13:40:25
【问题描述】:

我已阅读有关 PUT 的同上效力的所有信息,并且不将其用于部分更新。我现在的问题是如何处理这种情况。

假设我的服务收到资源 A 的 PUT 请求。A 有 5 个属性。如果请求只包含其中的 4 个,我该怎么办?

  • 将缺失的属性设置为 null
  • 抛出错误,400 错误请求
  • 其他?

在创建新资源时设置为 null 似乎没问题,但在更新时似乎可能有问题或危险。

对于这种情况,哪个被认为是“最佳实践”?

【问题讨论】:

    标签: rest partial put


    【解决方案1】:

    根据本书 REST in Practice:

    • PUT 需要整个资源表示
    • 建议在某些情况下使用 PATCH — 通常涉及大量资源 仅提供更改的表示

    【讨论】:

      【解决方案2】:

      如果缺少的参数是强制性的,显然你应该返回HTTP 400。如果参数不是强制性的,您可以使用传递的其他参数创建资源。

      我认为这也适用于 update 案例。如果缺少强制参数,您应该返回HTTP 400。否则,继续使用现有参数。

      这就是我所做的,我认为这是一个合理的方法。

      【讨论】:

        猜你喜欢
        • 2013-11-09
        • 2021-04-14
        • 2011-08-25
        • 2015-01-24
        • 2018-08-08
        • 2019-12-05
        • 1970-01-01
        • 2010-10-02
        • 1970-01-01
        相关资源
        最近更新 更多