2013-03-22 71 views
2

因此,我們有一個Web API,它對於一些第三方自動化,第三方會向我們的API的調用嘗試更新一些項目。可以在http CreateErrorResponse中返回複雜的對象內容嗎?

我們的網絡API將檢查項目是否存在以及一些依賴項目(XAML/JSON複雜的對象)需要也可以更新做實際的更新過程之前。

所以這裏的問題是,如果我們發現客戶沒有提供一些依賴,我希望能夠響應錯誤響應信息與例外,需要提供的依賴客戶端。

所以客戶做阿比嘗試更新一個電話,如果客戶有此錯誤代碼這個錯誤響應和內容是這些依賴性,客戶可以做到自動化與這些相關性。

是否可以做到這一點?

因爲我試圖用CreateErrorResponse,但它不會讓我提供像CreateResponse(statusCode, complexObject) ....

或什麼是與此有關的工作最佳實踐內容?

回答

5

你不限於使用CreateErrorResponse。這只是爲了緩和使用已經提供HttpError類做的工作:

http://msdn.microsoft.com/en-us/library/system.web.http.httperror%28v=vs.108%29.aspx

這個類可以包含其他組可以在響應體發送鍵/值對。

但是,你總是可以定義自己的錯誤類(即ApiError中),將包含您需要確切的數據,然後通過調用返回的類,即:

Request.CreateResponse(HttpStatusCode.BadRequest, error); 

如果誤差是比如你ApiError類。

+0

不錯,下面的例子將進一步幫助,如果有人這樣做對的WebAPI >>公共覆蓋無效onException的(HttpActionExecutedContext filterContext) {VAR 數據=新HttpError(); data.Add(「PayLoad」,GetRequestPayLoad()); filterContext.Response = filterContext.Request .CreateResponse(HttpStatusCode.InternalServerError,數據); – Arvin 2016-05-18 06:27:06