我的 Web API 2 项目有一些问题。
为了连接到移动应用程序客户端,我需要以这种方式提供自定义成功/错误对象:
产品 (GET)
- 在成功 200 上:返回带有 (ID, Name) 的列表
- on Error:返回带有(ErrorCode,ErrorDescription)的自定义对象
我怎样才能以一种好的方式做到这一点?使用JsonResult还是有更好的方法?
我的 Web API 2 项目有一些问题。
为了连接到移动应用程序客户端,我需要以这种方式提供自定义成功/错误对象:
产品 (GET)
我怎样才能以一种好的方式做到这一点?使用JsonResult还是有更好的方法?
我会这样做:
public class CustomErrorObject
{
public string ErrorCode { get; set; }
public string ErrorDescription { get; set; }
}
public class HandleApiExceptionAttribute : ExceptionFilterAttribute
{
public override void OnException(System.Web.Http.Filters.HttpActionExecutedContext actionExecutedContext)
{
base.OnException(actionExecutedContext);
HttpRequestMessage request = actionExecutedContext.ActionContext.Request;
CustomErrorObject response = new CustomErrorObject();
response.ErrorCode = actionExecutedContext.Exception.Data("Text");
response.ErrorDescription = actionExecutedContext.Exception.Data("Detail");
actionExecutedContext.Response = request.CreateResponse(HttpStatusCode.BadRequest, response);
}
}
然后在 Global.asax 中将这一行添加到 Application_Start 事件中:
GlobalConfiguration.Configuration.Filters.Add(new HandleApiExceptionAttribute())
如果您想了解更多关于 Web API 中的异常处理的信息:这里