【发布时间】:2012-12-13 13:40:25
【问题描述】:
我已阅读有关 PUT 的同上效力的所有信息,并且不将其用于部分更新。我现在的问题是如何处理这种情况。
假设我的服务收到资源 A 的 PUT 请求。A 有 5 个属性。如果请求只包含其中的 4 个,我该怎么办?
- 将缺失的属性设置为 null
- 抛出错误,400 错误请求
- 其他?
在创建新资源时设置为 null 似乎没问题,但在更新时似乎可能有问题或危险。
对于这种情况,哪个被认为是“最佳实践”?
【问题讨论】:
我已阅读有关 PUT 的同上效力的所有信息,并且不将其用于部分更新。我现在的问题是如何处理这种情况。
假设我的服务收到资源 A 的 PUT 请求。A 有 5 个属性。如果请求只包含其中的 4 个,我该怎么办?
在创建新资源时设置为 null 似乎没问题,但在更新时似乎可能有问题或危险。
对于这种情况,哪个被认为是“最佳实践”?
【问题讨论】:
根据本书 REST in Practice:
【讨论】:
如果缺少的参数是强制性的,显然你应该返回HTTP 400。如果参数不是强制性的,您可以使用传递的其他参数创建资源。
我认为这也适用于 update 案例。如果缺少强制参数,您应该返回HTTP 400。否则,继续使用现有参数。
这就是我所做的,我认为这是一个合理的方法。
【讨论】: