REST:PUT 以及如何处理部分实体



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

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

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

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

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

根据《实践中的休息》一书:

  • PUT 期望整个资源表示
  • 建议在通常涉及大量资源的情况下使用 PATCH。仅提供更改的表示形式

如果缺少的参数是必需的,显然您应该返回HTTP 400 。如果该参数不是必需的,则可以使用传递的另一个参数创建资源。

我认为这对更新情况也有效。如果缺少必需参数,则应返回HTTP 400 。否则,请继续使用现有参数。

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

最新更新