我已经阅读了关于PUT的同等效力的所有内容,而不是将其用于部分更新。我现在的问题是如何处理这种情况。REST:PUT以及如何处理部分实体
假设我的服务获取资源A的PUT请求.A有5个属性。如果请求只包含其中4个,我该怎么办?
- 设置缺少的属性设置为null
- 抛出一个异常,400错误请求
- 其他?
创建新资源时,设置为空似乎可以,但在更新时似乎可能存在问题或危险。
对于这种情况,哪种被认为是“最佳做法”?
我已经阅读了关于PUT的同等效力的所有内容,而不是将其用于部分更新。我现在的问题是如何处理这种情况。REST:PUT以及如何处理部分实体
假设我的服务获取资源A的PUT请求.A有5个属性。如果请求只包含其中4个,我该怎么办?
创建新资源时,设置为空似乎可以,但在更新时似乎可能存在问题或危险。
对于这种情况,哪种被认为是“最佳做法”?
据该书REST实践:
如果缺少参数是强制参数,显然应该返回HTTP 400
。如果该参数不是必需的,则可以使用传递的另一个参数创建资源。
我认为这也适用于更新的情况。如果缺少强制参数,则应返回HTTP 400
。否则,请继续使用现有参数。
这就是我所做的,我认为这是一个合理的方法。