
我讀過有關 REST api 的文檔。從初學者的角度來看,我不明白為什麼要使用 REST,而你可以用該post
方法做所有事情?
例如,如果我請求後端刪除一個條目,我可以簡單地delete_one
作為請求中的url調用POST
,為什麼要設計一個繁瑣的DELETE
請求呢?
答案1
REST 限制的目標之一是從分層快取中受益。遵循 REST 架構風格為您提供了一種通用語言來描述操作以及不同操作之間的關係,這種語言不僅可以被端點(客戶端和伺服器)理解,還可以被快取和中間件等中間元件理解。這些快取和中間件可能是通用的、現成的元件,不是專門為您的應用程式建置或配置的,但僅理解 HTTP 的基本語義(或您使用的任何 REST 風格)。
對於您的特定範例,當您使用 HTTP DELETE 方法時,您也指示該 URL 上的快取應失效:
如果 DELETE 請求通過的快取儲存了一個或多個針對有效請求 URI 的回應,則這些儲存的回應將失效(請參閱 [RFC7234] 的第 4.4 節)。
這意味著該 URL 上的後續 GET 命令應從來源伺服器檢索,而不是從快取檢索。