PATCH 方法是否应该返回响应正文中资源的所有字段?
或者它应该只返回更新的字段?
我正在阅读this https://www.rfc-editor.org/rfc/rfc7386
例如,如果它只返回更新的字段,则用户可以知道服务器中哪些字段被更新,而用户也更新了某些字段。
**Users resource representations**
name: string
age: number
createdon: date
modifiedon: date
PATCH /users/{userId}
Request body
{
name: 'changedname',
}
Response body Case1
{
name: 'changedname',
age: 20,
createdon: 2016-01-01,
modifiedon: 2016-06-09
}
Response body Case2
{
name: 'changedname',
modifiedon: 2016-06-09
}
通常这应该通过处理内容协商 https://en.wikipedia.org/wiki/Content_negotiation。换句话说,客户asks如果需要的话,获取特定的表示。该请求将如下所示:
PATCH /user/123
Content-Type: application/merge-patch+json
Accept: application/vnd.company.user+json
...
在这种情况下,客户表示希望获得完整的user
代表作为答案。或者它可以这样做:
PATCH /user/123
Content-Type: application/merge-patch+json
Accept: application/vnd.company.object-fragment+json
...
请求某个对象的通用片段表示。
如果您不想,则不必同时实现两者,在这种情况下,您只需执行您的用例并响应406 Not Acceptable
to media-types
你暂时不支持。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)