在ASP中使用Web API的优势是什么?. NET MVC(5)项目
本文关键字:NET 是什么 MVC 项目 ASP Web API | 更新日期: 2023-09-27 18:05:38
我正在ASP中实现一个企业web应用程序。asp.net MVC 5。在许多情况下,我正在编写AJAX get和post并与服务器应用程序通信。目前我正在编写控制器动作来服务这些请求,通常返回JSON结果。当我在客户端传递JSON时,动作方法参数绑定似乎也可以无缝地工作。
我不想在一个不合适的实践中走得太远,所以问题出现了,在我的项目中添加Web API支持并重构我当前的ajax -控制器实践有什么好处?
使用WebAPI相比MVC + Ajax有几个优势:
-
内部序列化
WebAPI有一个内部序列化,这使得返回特定的数据更容易,而不需要你自己的扩展方法或使你的控制器依赖于序列化框架库。
-
操作结果帮助
您可以使用大量的操作结果帮助器,如
Ok()
,NotFound()
,InternalServerError()
,它们都返回IHttpActionResult
,这使得您的代码更容易阅读和维护,并清楚地表明您的意图。 -
动作结果抽象
使用
IHttpActionResult
可以很容易地抽象结果,这在单元测试控制器时很有帮助。 -
可用于自主机
使用OWIN,你可以轻松地自托管你的WebAPI项目,这使得你的应用程序更容易维护和独立于iis。
-
本地属性路由
WebAPI已经实现了属性路由,这使得所有的路由配置更容易(并且有助于使用基于特性的架构)。
-
DI配置改进
WebAPI和MVC都有自己的组合根和不同的DI实现。微软对WebAPI进行了一些改进,使其更易于使用和维护。
我想说,只有当WebAPI不存在时,使用MVC + Ajax才是可行的,因为这是唯一的选择。
如果您的项目客户端需要多种格式的数据(json,xml,csv)或有机会在未来更改Wep Api需要最小的配置相比mvc。Wep Api返回数据到客户端根据内容协商(如果客户端需要xml返回xml,如果json返回json根据请求头),但在mvc你需要更多的代码来满足这一点。在编写操作方法时必须显式指定数据格式。(JsonResult,ActionResult,XmlResult
)
Wep Api让您在稍后查看代码时对正在做的事情有更有意义的了解。比较方法签名;public List<Student> Get()
比public JsonResult Index()
更有意义
- 重量轻&使用方便。
- 减少客户端和服务器之间的数据传输。 使用webapi可以开发跨域应用程序。
- 与WCF相比需要更少的配置。
-
它简单、可扩展且健壮,因为它支持所有MVC特性,如路由、控制器、模型绑定器、IOC容器、动作结果、过滤器或依赖注入,因为它是建立在Asp之上的。净MVC。
-
通过移交对HTTP协议消息发送和响应方式的控制权来授权开发人员。
-
单元测试很容易,因为它支持测试驱动开发。
-
由于内容协商和驱动对ASP的支持,它在web API创建中提供了足够的灵活性。网络路由。
-
与WCF REST服务不同,不需要为不同的设备定义繁琐的配置设置。
-
web api的架构非常轻,这使得它们成为开发人员在带宽有限的设备上构建应用程序的完美选择。
-
Web api用于创建非基于SOAP的HTTP服务,因此,如果需要Web服务,但不需要SOAP,则使用ASP。. Net Web API非常值得寻找。
-
支持不同的消息格式,如json,纯文本和xml。
-
Asp。. Net Web API支持基于约定的CRUD动作,因为它与HTTP动词GET、POST、PUT和DELETE一起工作。