[英]How to handle a mismatch between the PUT body and URI in a REST update?
如果将PUT
请求发送到URI,例如http://foo.com/api/employees/123
,其中“ 123”是员工ID,但是消息正文如下所示:
{
"id" : 444,
"firstname" : "John",
"lastname" : "Doe"
}
服务应如何处理?
是期望将员工“ 123”更新为现在的员工“ 444”(有效地移动资源)还是应该返回HTTP错误响应(如果是,应该是什么?)
我认为应该使用URI中的ID,并且在邮件正文中不存在ID。 您在这里重复了提示。
您在PUT方法中提供的内容包含要更新的数据,而不是标识符。
这是我如何适应您的电话:
PUT http://foo.com/api/employees/123
(some headers like Content-Type: application/json)
{
"firstname" : "John",
"lastname" : "Doe"
}
也许此链接可以为您提供帮助: http : //templth.wordpress.com/2014/12/15/designing-a-web-api/ 。
希望能帮助到你。 蒂埃里
您可以根据要对放置资源进行的操作使用此ID。 通常,资源uri中的id用于从持久性数据库中按id获取项目。 您可以通过uri id获取项目,然后可以将此id设置为body,但这很奇怪!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.