REST API应该如何处理对部分可修改资源的PUT请求?
假设REST API响应HTTP GET请求,在子对象中返回一些其他数据owner: { id: 'xyz', ... some other data ... owner: { name: 'Jo Bloggs', role: 'Programmer' } } 显然,我们不希望任何人能够PUT支持 { id: 'xyz', ... some other data ... owner: { name: 'Jo Bloggs', role: 'CEO' } } 并取得成功。的确,在这种情况下,我们甚至可能不会采取任何措施来实现这一目标。 但是,这个问题不仅仅涉及子对象:通常,应该对不应在PUT请求中进行修改的数据执行哪些操作? 是否应要求PUT请求中缺少它? 是否应该默默丢弃? 是否应该检查它,如果它与该属性的旧值不同,则在响应中返回HTTP错误代码? 还是我们应该使用RFC 6902 JSON补丁而不是发送整个JSON?