WebApiConfig.cs
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "search/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
//JSON RESPONSE SETTING
config.Formatters.Clear();
config.Formatters.Add(new System.Net.Http.Formatting.JsonMediaTypeFormatter());
config.EnableSystemDiagnosticsTracing();
}
ReplyController.cs
public class ReplyController: ApiController
{
[HttpGet]
public HttpResponseMessage getReply()
{...}
}
我在下面编写json返回自定义错误代码:
401 Bad Request - {meta:{code:401, msg='invalid params'}}
我想为404 http状态编写json返回代码。
我在哪里写?控制器类?webconfig.cs?Global.asax?
因此,对于在哪里编写该代码,您有两个选择:
您可以添加一个处理OnError条件的全局过滤器,然后使该过滤器返回正确的JSON响应。如果您四处搜寻,有几个不同的例子。
我喜欢做的是有一个自定义BaseApiController类,该类具有一个ExecuteRequest方法,该方法以lambda委托作为参数,然后在ExecuteRequest方法主体内,我可以在调用该委托之前进行所有设置,并完成拆卸和错误处理在我打电话给代表之后。我以这种方式使用b / c,我将SimpleInjector用作我的DI框架,但是要获得自定义过滤器以注入DI并按照我希望它们的顺序运行是很痛苦的。
让我知道这是否有意义,但是我认为这对您来说很好,b / c,那么您只需尝试/捕获就可以解决问题,而且还不错。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句