Web Api 之 404 Resource Not Found 错误消息封装

在基于Web API的项目中,作者遇到了404 Resource Not Found错误的统一处理问题。通常,这种错误发生在找不到对应Controller或Action时,常规过滤器无法捕获。通过研究,作者找到了一种解决方案,涉及继承ApiControllerActionSelector和DefaultHttpControllerSelector,重新注册选择器,并创建错误处理控制器。通过这种方式,可以拦截404错误并返回期望的错误消息格式。
摘要由CSDN通过智能技术生成

问题背景

最近在重构个以前做过的一个电商网站,做了很大的改动,主要是性能和稳定性。以后有机会详细讨论。

目前在基于Web Api开发API项目,供APP及移动站点使用。使用Asp.Net Web Api开发方便快捷毋庸多言,谁用谁知道,呵呵~~~

Web Api技术知道日久,基本也知道怎么回事,毕竟在使用上跟Asp.Net MVC使用比较相似。但是真正在开发的时候,还是大大小小碰到不少问题,也有挺多心得。如题问题即使其中的恶一个。如果时间足够,我将一一跟各位分享和讨论。针对某个问题,我的方案有错误或者您有更好的方案,也请不吝赐教。小弟在此谢过!!

问题

废话不多说,直接讨论本问题。在处理返回消息的时候,希望将返回的消息都进行统一。消息格式如:

response:
{
   head:{
   status: 200 //(200: ok, 404: 找不到方法/Action/controller, 500: 内部错误),
   errors: 错误信息
   }
   body: 具体返回数据
}

对于正常的Action返回的数据,有许多方式可以处理成我们所需要的格式,若有需要以后再开一贴单独讨论。但对于404错误,也就是找不到Action或者Controller的错误,就不是那么好处理。因为请求不会进入Action通道里,也就是Filter也够不到,无法拦截。

解决方案

首先想到的解决方案是在Application_Error

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值