使用ASP.NET MVC控制器可以以不同的格式公开数据。AspNetWebAPI专门设计用于创建API,但我可以轻松地使用MVC控制器来实现这一点,但我不清楚它比传统MVC控制器更好的情况是什么。我感兴趣的是,在哪些情况下WebApi的好处是显而易见的,值得为我的应用程序添加另一个复杂性层。
问题:使用ASP.NET WebApi相对于MVC有哪些优缺点?
使用ASP.NET MVC控制器可以以不同的格式公开数据。AspNetWebAPI专门设计用于创建API,但我可以轻松地使用MVC控制器来实现这一点,但我不清楚它比传统MVC控制器更好的情况是什么。我感兴趣的是,在哪些情况下WebApi的好处是显而易见的,值得为我的应用程序添加另一个复杂性层。
问题:使用ASP.NET WebApi相对于MVC有哪些优缺点?
WebAPI 会生成 OData,因此您可以获得使用 OData 的所有优势。例如,使用 WebAPI 您可以获得以下功能:
Asp.Net Web API与Asp.Net MVC的区别
1. Asp.Net MVC用于创建既返回视图又返回数据的Web应用程序,而Asp.Net Web API用于创建仅返回数据而非视图的完整HTTP服务。
2. Web API有助于在.NET框架上构建RESTful服务,并支持内容协商(它涉及决定客户端可接受的最佳响应格式数据。可以是JSON、XML、ATOM或其他格式化数据),自托管等功能,而这些功能在MVC中没有。
3. Web API还负责按特定格式返回数据,如JSON、XML或任何其他基于请求中的Accept标头的格式,您不必担心这些细节。MVC仅使用JsonResult返回JSON格式数据。
4. 在Web API中,请求基于HTTP动词映射到操作,而在MVC中则基于操作名称进行映射。
5. Asp.Net Web API是一个新的框架,它是核心ASP.NET框架的一部分。模型绑定、过滤器、路由和其他MVC功能存在于Web API中,与MVC不同的是,它们存在于新的System.Web.Http程序集中。在MVC中,这些功能存在于System.Web.Mvc中。因此,Web API也可以用于Asp.Net,并作为独立的服务层。相似之处
不同之处:
MVC控制器非常重,如果您查看其定义,可以看到它使用了多少接口和基础代码,Web API是较轻的控制器,并通过传递的参数区分请求(是的,我们也可以更改!)
MVC控制器具有太多功能,如返回视图、操作结果、JavaScript结果等,但Web API只有JSON或XML。
API用于实现可独立托管在任何地方的Restful(GET、POST、PUT、DELETE、OPTIONS)服务,而不依赖于视图,MVC控制器无法支持该服务,因为它与视图紧密集成。
在某些时候,您可能想完全放弃ASP.NET MVC。如果您是.NET开发人员,但想构建单页面应用程序(例如使用Angular),则希望利用RESTful服务(WebAPI)的好处,而无需承受ASP.NET MVC带来的所有不必要的负担。
ASP.NET MVC专注于使HTML输出变得简单。ASP.NET Web API专注于使原始数据的输出变得简单。
在WebForms世界中,ASP.NET MVC相当于.aspx页面,而ASP.NET Web API相当于.asmx。
Asp.Net MVC被用于创建既返回视图又返回数据的Web应用程序,而Asp.Net Web API则用于创建完整的HTTP服务,以简单易懂的方式仅返回数据而不是视图。
Web API有助于在.NET Framework上构建RESTful服务,它还支持内容协商(这是关于决定客户端可接受的最佳响应格式数据的问题。它可以是JSON、XML、自托管等,这些都不在MVC中)。
Web API还负责按照请求中的Accept标头以特定格式返回数据,如JSON、XML或任何其他格式,您无需担心。MVC只使用JsonResult以JSON格式返回数据。