【发布时间】:2015-05-06 11:56:02
【问题描述】:
我正在使用 ASP.NET MVC 构建一个 Web 应用程序,该应用程序需要通过 Web 浏览器(通过视图)以及通过 Web API 从移动应用程序访问。问题是我想避免在视图控制器(从控制器继承)和 Web API 控制器(从 ApiController 继承)中重复业务逻辑。
基本上,我想采用 Web 应用程序仅使用 Web API 的设计,所有业务逻辑都在 Web API 中实现。
视图 控制器 Web API 控制器 数据模型
设计此类应用程序的最佳方式是什么?有没有一种简单的方法可以从同一个 MVC 应用程序调用 Web API 控制器?还是使用两个单独的应用程序/项目更好?
【问题讨论】:
-
将所有业务逻辑放在一个类库中,并从 MVC 和 Web API 控制器中引用它。您可以从 MVC 应用程序向 API 控制器发出 HTTP 请求,但这似乎没有必要,除非您有与基础架构相关的原因。
-
谢谢!我还担心 Web API 功能将落后于应用程序功能(因为它经常发生在 API 中)。为避免这种情况,我计划要求通过 Web API 公开所有应用程序的功能,使其成为必要的层。
-
这很公平,然后我会使用 RestSharp 之类的东西向您的 API 控制器发出 HTTP 请求。不要试图直接打电话给他们,因为很多人似乎都坚持这样做。
-
执行 HTTP 请求而不是直接调用 api 控制器是否有显着的性能影响?直接打电话给他们有什么不好(反正我也不知道怎么做)?
标签: asp.net asp.net-mvc web-services web asp.net-web-api