0

我的 Web API 2 项目有一些问题。

为了连接到移动应用程序客户端,我需要以这种方式提供自定义成功/错误对象:

产品 (GET)

  • 在成功 200 上:返回带有 (ID, Name) 的列表
  • on Error:返回带有(ErrorCode,ErrorDescription)的自定义对象

我怎样才能以一种好的方式做到这一点?使用JsonResult还是有更好的方法?

4

1 回答 1

1

我会这样做:

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 中的异常处理的信息:这里

于 2017-01-25T16:47:18.837 回答