0
我想弄清楚使用REST約定進行更新的正確方法。到目前爲止,我們有:REST PUT網址約定
更新單個項目:
PUT
https://mydomain.com/dogs/{id} accept: application/json, {dog}
更新多個項目:
PUT
https://mydomain.com/dogs accept: application/json, [{dog1}, {dog2}, ...]
我想如果約定也決定弄清楚(除,或者什麼,而不是我們上面有),這對於一個項目:
PUT
https://mydomain.com/dogs accept: application/json, {dog}
然後,後續問題:說一個元素具有我們更新集合時出現驗證錯誤。公約是否規定我們返回422並拒絕整個請求?或者我們更新有效的並返回4xx狀態碼?
在你的第二個例子(列表)中,最好使用POST。 POST是「附加」動詞,並且您將兩個項目追加到狗列表中。 PUT的意思是「這是整個狗的集合!」。 ...第三個例子的問題是你不知道這隻狗有什麼{id}!這不是狗收集的代表!所以你最好使用(1)或者在(3)中再次使用POST。 POST更常見於創建。 ...你如何返回驗證錯誤完全取決於你 - 我不知道有明確的約定。我可能會拒絕整個事情恕我直言。 – Rob