2012-10-30 48 views
1

在POST/PUT中返回稍微不同的對象,例如發送給服務器的對象,是否爲RESTful?對PUT/POST的RESTful響應

實施例:

客戶端發送(POST/PUT)的Order到服務器以創建訂單。服務器發送響應對象,讓它叫做OrderResponse其中包含創建的Order的屬性加上一些不同的信息,如交貨時間,付款條款等。這是RESTful或我應該只是返回一個OrderId並提供一個新的服務,客戶可以檢索OrderResponse

編輯:

我不能給客戶端的URL到新的訂單,因爲訂單心不是保存在數據庫中。我的應用程序通過消息發送訂單到第三方系統,我無法讀取它,但第三方系統發給我一些額外的信息,我將其添加到OrderResponse

回答

2

我不認爲OrderOrderResponse是不同的資源。它們屬於同一類型。客戶不能也不應該知道這個資源的所有細節。例如,確切的ID由服務器分配。

  • 使用具有不同表示法的相同資源。
  • 將HTTP響應中的Location標題返回到POST請求,該請求包含創建Order的URI。
  • 作出Order的表示,並且此URI更完整,即客戶端編輯的一個POST
+0

感謝您的回答!所以你認爲發佈'OrderResponse'到客戶端,發佈'Order'時可以嗎?不介意,XML標籤可能看起來像「'而不是''?另見我的編輯上面! – joshi737

+1

在REST中,沒有'OrderResponse'這樣的事物,只有'Order'。 – 2012-10-30 11:19:50

+0

我知道,但我即將公開SOAP服務也作爲REST服務,並希望使用與SOAP中使用的相同的對象和業務功能,所以我正在努力與這些東西。 – joshi737

相關問題