[英]MVC & Web Api projects within same Solution
我有一个位于 N 层应用程序之上的 MVC 4 项目。 我现在需要能够以编程方式使用应用程序。 我在同一个解决方案中创建了一个新的 Web API 项目,该项目位于 MVC 项目旁边,再次位于 N 层应用程序之上。
但我不清楚这一切是如何工作的,因为 MVC 层是启动项目:它设置我的 DI、自动映射器等,并且是我部署到服务器的项目。
那么这一切应该如何设置呢? 我可以设置我的 MVC 项目以将所有/api
请求路由到新的 Web API 项目吗? 还是需要单独部署Web API项目?
我不想做任何非常规的事情,所以如果有更常见的设置方式,请指出正确的方向。
谢谢。
WebApi 是 Microsoft 的一个替代的面向服务的应用程序,就像 WCF 一样。 但是 WCF 使用 SOAP 协议,而 WebAPI 使用 HTTP 协议进行通信。
因此,如果您使用 WCF 为您的 MVC 应用程序提供服务,您将单独托管该 wcf 服务并通过 MVC 应用程序使用其服务,与您必须单独托管您的 WebAPI 项目并向您的 Web 应用程序 (MVC) 提供服务的方式完全相同。
出于某些原因,如果您希望它们(MVC 和 WebAPI)在同一个项目中使用,请遵循本文中的规则。
我昨天刚刚做了同样的事情。 我在同一个 MVC 4 项目中有常规控制器和 ApiController。
您需要在 Global Asax for WebApi 中添加路由:
WebApiConfig.Register(GlobalConfiguration.Configuration);
看看 WebApiConfig :
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
不要忘记为 WebApi 添加 Nuget 包(如果你还没有的话)。 就我而言,我没有它们,因为我的项目最初是 MVC 3,后来升级了。
您只需要将路由和 API 控制器添加到您现有的 MVC 站点,它们都将在site/api/
下可用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.