我正在创建一个新的 MVC4 项目,研究使我相信现在通过 Web API 框架而不是控制器操作可以更好地实现从 javascript 到服务器端的通信。我对此的理解正确吗?
我假设我可以在 Web API 和 MVC 控制器之间共享我的所有属性等,所以从表面上看,这对我来说似乎并不是一个巨大的变化。
当我设置应用程序时,我喜欢将组件拆分为项目。我的计划是有一个 MVC 项目和一个 Web API 项目。但我遇到了问题。例如,我最终得到了 2 个应用程序,单独的路由设置等等。
所以我的问题是,在 MVC 应用程序中,Web API 框架应该位于同一个项目中,还是应该将 Web API 分成自己的项目并解决这些问题?
不幸的是你错了 -我假设我可以在 web api 和 mvc 控制器之间共享我的所有属性等,所以从表面上看,这对我来说似乎并不是一个巨大的变化。
Web API 和 MVC 使用的许多概念虽然乍一看很相似,但实际上并不兼容。例如,Web API 属性是System.Web.Http.Filters.Filter
和 MVC 属性是System.Web.Mvc.Filter
- 并且它们不可互换。
这同样适用于许多其他概念 - 模型绑定(完全不同的机制)、路由(Web API 使用 HTTPRoutes 而不是路由,即使它们都在相同的底层 RouteTable 上运行)、依赖解析器(不兼容)等等 - 尽管在表面上看,实际中却有很大不同。而且,Web API没有区域的概念。
最终,如果您想要实现的只是采用一种“新的、时尚的”方式来提供 JSON 内容,那么在走这条路之前请三思。我当然不会建议重构任何现有代码,除非您真正考虑采用 HTTP 并以 RESTful 方式构建应用程序。
这完全取决于您正在构建的内容。如果您正在开始一个新项目,并且您需要的只是提供一些 JSON 来促进您的 Web 应用程序 - 只要您愿意接受一些可能重复的代码(如我上面提到的东西),Web API 可以轻松托管在与 ASP.NET MVC 相同的项目。
如果您要为您的在线服务构建适当的 API(可能由外部客户或各种设备使用,例如为您的移动应用程序提供支持),我只会将 Web API 分离到一个单独的项目中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)