如果PUT
请求发送到http://foo.com/api/employees/123
这样的URI,其中'123'是员工ID,但邮件正文如下所示:
{
"id" : 444,
"firstname" : "John",
"lastname" : "Doe"
}
服务应如何处理?
是否期望将员工'123'更新为员工'444'(实际上移动资源)或者是否应该返回HTTP错误响应(如果是,那应该是什么? )
答案 0 :(得分:1)
我认为应该使用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/。
希望它有所帮助。 亨利
答案 1 :(得分:0)
您可以根据要对put资源执行的操作使用此Id。通常,资源uri中的id用于从持久性db获取id。您可以通过uri id获取项目,然后您可以将此ID设置为正文,但这将是奇怪的!