2

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

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

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

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

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

4

2 回答 2

1

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

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

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

于 2012-12-13T13:52:13.780 回答
1

根据《实践中的 REST》一书:

  • PUT 期望整个资源表示
  • 建议在某些情况下使用 PATCH — 通常涉及仅提供更改的大型资源表示
于 2012-12-13T15:42:02.397 回答