问题背景
最近在重构个以前做过的一个电商网站,做了很大的改动,主要是性能和稳定性。以后有机会详细讨论。
目前在基于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