2014-02-18 35 views
0

在我的REST服務中我已更新和刪除部分。 根據http://www.asp.net/web-api/overview/creating-web-apis/creating-a-web-api-that-supports-crud-operations,UPDATE操作應回覆爲bool,DELETE操作發送空回覆。WebAPI和角度服務:對UPDATE和DELETE請求的標準回覆

現在,我有附加到服務的Angular $資源。我有以下問題:

  • 什麼樣的REST回覆$資源期望從服務器更新和刪除?有沒有標準?
  • 如果服務器只是回答了一個對象/數組而不是簡單的布爾值,比如「true」,那麼我如何配置角度資源來接受它,以及如何在客戶端訪問它?

我已經注意到,我的posession中的角度文檔並沒有給出任何關於典型響應應該是什麼樣子的特殊性,某種最佳實踐。

謝謝!

回答

1

在你的鏈接中,他們只返回了模型的bool,這不是你的AngularJS應用程序會看到的。重要的是控制器返回的內容。返回HTTP狀態是一個好習慣。在響應頭中有HTTP狀態的情況下,您不需要bool,因爲標頭足以指示操作是成功還是失敗。有時候,您也可能想要返回新更新的資源。

對於UPDATE操作,當您創建新資源(許多人使用POST作爲後者)時,只需更新資源或代碼201(HttpStatusCode.Created)時,可以返回代碼200(HttpStatusCode.OK)。您也可以將創建的資源添加到響應中。根據您的應用,這可能不是必需的。

對於DELETE操作,當操作無法完成時,在資源被刪除或其他代碼(例如404(HttpStatusCode.NotFound))時簡單地返回200即可。

RESTful HTTP in practice

在你的AngularJS應用程序,你可以訪問響應每一項操作的$resource成功/錯誤回調。 HTTP狀態碼將在響應頭中。

AngularJS $resource