簡體   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