[英]Very strange http delete rest operation - delete with a lot parameters
分析團隊制定了一些對我來說聽起來有點奇怪的規范。
我必須刪除數據庫表上的資源。 我有 rekord 的 id 作為輸入參數。
這是直截了當的 http 刪除操作。
DELETE http://my-url/{id}
他們想添加一些其他值作為輸入參數,出現在 rekord 中,因為,他們說“在這種情況下刪除操作非常微妙,我們希望確保排除前端的錯誤,傳遞的 id 應該是 id rekord 的值通過”。
關於這個要求有很多內部討論。 菜餚在參與者之間飛來飛去。 無論如何,我們必須滿足它。
我知道這不是更多的 RESTful 操作。
我這樣修改:
DELETE http://my-url/{id}
REQEUST BODY
{
"myProperty1" = 123,
"myProperty2" = "VALUE",
...
}
Swagger 一代對 DELETE with REQUEST BODY 感到憤怒。
我必須切換到
開發團隊喜歡盡可能長時間地呆在 RESTful 環境中。 什么會更好不走調?
我們認為不會受到贊賞的任何其他建議或解決方案。
Swagger 一代對 DELETE with REQUEST BODY 感到憤怒。
是的,沒錯。
DELETE 請求消息中的有效負載沒有定義的語義——RFC 7231
DELETE 是關於將 URI 與其表示分離。 這有點類似於從地圖/字典中刪除鍵或文件系統中的符號鏈接。 它告訴 web 服務器停止為特定的 web 頁面提供服務。
通常很容易弄清楚 DELETE 請求的標識符應該是什么。 它將與您用於通過 GET 請求查找表示的標識符相同。
DELETE 是在網絡域上傳輸文檔時具有語義的操作。
請注意標准中包含的這一觀察:
相對較少的資源允許使用 DELETE 方法——它的主要用途是遠程創作環境,用戶對其效果有一定的指導。
如果您要做的是將帶有有效負載的消息傳遞給您的服務器,以便服務器可以做一些聰明的事情,那么您可能應該使用 POST,而不是 DELETE。
請記住:可以使用 POST 。 世界范圍內的 web 僅使用GET 和 POST就取得了災難性的成功。
他們想添加一些其他值作為輸入參數,出現在 rekord 中,因為,他們說“在這種情況下刪除操作非常微妙,我們希望確保排除前端的錯誤,傳遞的 id 應該是 id rekord 的值通過”。
這里所尋求的可能是有條件的刪除。 我們有標准化的標頭,驗證器可以使用這些標頭來確定 DELETE 請求和資源的當前 state 是否“匹配”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.