【发布时间】:2016-02-15 10:47:40
【问题描述】:
假设我有一个允许应用程序创建用户对象的休息服务
URI:/用户
HTTP方法:POST
{
"firstName":"Edward",
"lastName": "Nygma",
"dob": "01011981",
"email": "en@gc.com",
"phone": "0123456789"
}
在第一次 POST 时创建用户对象并返回用户 ID
假设有第二项服务允许用户更新姓氏和电子邮件字段。
URI:/user/1/last-email
HTTP 方法:POST
{
"lastName": "scissorhands",
"email": "ec@bc.com"
}
假设为了带宽,发送完整的用户对象不是这个更新调用的选项。
这是进行涉及多个字段的部分更新的正确方法吗?也不可能使用 PATCH。
编辑: 我知道正确的做法是将每个字段的更新作为子资源发布,但为了带宽/业务需求,必须在一次调用中完成此更新。这是正确的做法吗?
编辑 2:
我们的实现不支持 HTTP PATCH 方法,因此我在最初的问题中指出使用补丁是不可能的。话虽如此,也许我应该重新提出这个问题。
由于系统/业务需求阻止我们在 RESTful 庄园中正确实现这一点。处理这种情况的最佳方法是什么。
【问题讨论】:
-
我不知道上下文,但有道理。另一方面,如果您的数据太长,也许您应该考虑压缩要发送的数据
-
我不同意,请使用 PATCH 动词