可以在http CreateErrorResponse中返回复杂的对象内容吗?

时间:2013-03-22 16:10:34

标签: exception-handling automation asp.net-web-api

所以我们有一个Web Api,对于某些第三方自动化,第三方会调用我们的API尝试更新一些项目。

我们的Web Api将检查项目是否存在以及在执行实际更新过程之前还需要更新某些依赖项(xaml / json中的复杂对象)。

所以这里的问题是,如果我们发现了一些客户端没有提供的依赖项,我希望能够将错误响应消息响应给客户端,并提供需要提供的异常和依赖项。

因此客户端可以调用Api尝试更新,如果客户端使用此错误代码获得此错误响应并且内容是这些依赖项,则客户端可以使用这些依赖项自动执行。

有可能吗?

因为我尝试使用CreateErrorResponse,但它不允许我提供CreateResponse(statusCode, complexObject)等内容....

或者使用它的最佳做法是什么?

1 个答案:

答案 0 :(得分: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);

其中error是您的ApiError类的实例。