2013-02-26 57 views
0

按照RESTful服務準則,我們應該使用GET用於讀取資源,POST用於創建新的資源,DELETE用於刪除現有資源等我應該使用哪種HTTP方法用於執行READ&WRITE的REST服務方法?

但是假設我開發一個RESTful Web服務,說OrderProcessing。在placeOrder(Order)方法中,我必須閱讀一些表格,如庫存,產品詳細信息等,在訂單和訂單詳細信息中插入一些新行,並執行更新,例如降低庫存水平等。然後,我應該使用什麼HTTP方法用於placeOrder ) 方法。

在非常高的層次上,我們正在創建一個新的資源(Order),所以我認爲POST是使用正確的HTTP方法。

但是一般來說什麼動詞應該用於在同一個方法內讀取/創建/更新數據的方法?

回答

0

我同意你的看法,POST在這裏是合適的。即使您正在進行多項操作,您也可以將其視爲訂單資源的單一創建。至於其他業務,我會將這些內容視爲您未向您的服務消費者公開的內部細節。

編輯 - 更進一步,這裏假設您已將Order定義爲您的資源,並且POST正文包含此資源的表示形式。並且要完全RESTful,如果POST導致創建新訂單,那麼HTTP 201是適當的響應代碼。有關更多詳細信息,請參閱http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html的第9.5節。

0

絕對POST。您可以排除GET和DELETE,原因很明顯,您只想使用PUT進行冪等操作。由於您正在減少庫存,因此您可以安全地排除PUT作爲可行的選項。

相關問題