2013-05-09 67 views
2

想象我在API的電子商務應用程序/車,支持一些CRUD操作的一些特殊情況的資源:GET,POSTRESTful方式來驗證資源

我想有一個服務,驗證購物車是否正確(庫存可用性等),所以我需要所有的購物車信息,但我不想存儲購物車的部分狀態,這就是爲什麼PUT不支持此資源。

問題是哪種方法和路徑是以Restful方式執行此類服務的正確方法?

回答

1

我想如果你想建立一個寧靜的web服務,你不應該在其中綁定太多的業務邏輯。

寧靜的服務應該被視爲系統的基礎設施。它提供了一致的API以允許他人訪問資源。

您可以在restful資源上構建一個bussiness層,在這個層中,您可以執行復雜的業務邏輯,例如檢查庫存可用性(可能是底層訪問庫存資源),或者進行支付(可能是底層訪問支付資源和產品資源)

+0

我認爲你是對的。驗證邏輯必須在Rest客戶端上使用其他Rest資源(支付,股票,...) 問題是,我的客戶端將是智能手機,因此CPU和網絡友好是非常重要的......我期望擁有像POST方法HEAD這樣的東西。 讓我解釋一下:方法HEAD用於獲取資源的元數據信息(如果可用)或資源的某些元數據信息。對我來說,完美的做法是做一些類似於此的事情,但對於POST來說。 如果這是不可能的,你的解決方案是Restful最好的方式來處理它。 – padilo 2013-05-09 14:29:58

+0

我認爲使用HEAD可能有點奇怪...因爲驗證邏輯和處理邏輯被分成兩個請求,可能會有一些不安全的地方。事實上,雖然休息的概念非常流行,但很難將其設計得很好,大多數api似乎都很安靜(特別是url模式)。我建議你在其他api上構建一個業務api,或者將驗證邏輯放在post方法中(無需堅持其餘概念)。 – ltebean 2013-05-10 01:48:35

+0

謝謝,最後我不會支持驗證服務,所以我只會在POST方法中進行驗證。如果以後驗證是需要的,我會做一個業務API。 :) – padilo 2013-05-10 07:30:22