2017-04-01 400 views
-1

我們有其餘的端點POST,PUT,DELETE的產品。REST:如何處理已在請求正文中具有ID的POST請求

POST請求的身體看起來像:

{ 
     "Id": Unique identifier of the product, 
     "Description": Product description, 
     "Price": Price of the product 
} 

現在,由於POST被認爲是不冪等,但在這裏我們不能讓與相同的「ID」重複的條目。請求主體中的這個「Id」是第三方系統Id,它向我們的系統發送POST請求。

我們只允許使用此「ID」更新/刪除資源,並且不要期望POST/PUT與我們內部生成的ID有關。雖然我們生成了我們爲響應此POST請求而發回的唯一標識,就像處理確認請求一樣。

但我想知道,應該是POST還是PUT請求?如果我們得到重複的POST請求,我們應該怎麼做,我們應該發回驗證錯誤或更新以前保存的請求?

REST說什麼或者哪種方法對性能和維護更好?

回答

0

爲什麼不能同時提供?

一個POST方法,它拋出情況下HttpStatusCode 409(衝突)在體內的ID已經存在於您的系統,和另一個(PUT),與體內的新值更新資源。您甚至可以添加PATCH,僅更新正文中傳遞的字段。