2013-03-22 41 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

相关问题