繁体   English   中英

如何处理REST更新中PUT主体与URI之间的不匹配?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM