1

我已经创建了一个MVC项目(称为DeploymentTool),并在解决方案中添加了另一个webAPI项目(称为DeploymentToolAPI),因此NameSpace对于这两个项目都是不同的。现在我想要的是从外部调用DeploymentToolAPI的任何HTTPPOST/HTTPGET方法,例如POSTMAN或Web浏览器。我们需要更新WebApiConfig.cs吗? 如果不是,我如何找到DeploymentToolAPI的URL。我可以调用任何DeploymentTool方法,但在DeploymentToolAPI的情况下它不起作用。Rest API ASP.NET

希望任何帮助/建议。

回答

1

首先,你需要Set Multiple Startup Projects使您的API服务和MVC Web应用程序同时启动:

在Visual Studio中右键单击您的解决方案 - >属性 - >选择 “多启动项目” - >设置两个项目的行动开始:

Set Multiple Startup Projects in Visual Studio

一旦完成后续由@Ankush Jain发布的说明或从浏览器窗口复制WEB API网址,因为当您在设置多个启动项目后运行项目时,您会看到您的web api服务和MVC web应用程序都将在浏览器中打开在两个不同的标签。

+0

是的。谢谢丹尼斯。 – Vivek

2
  1. 右键单击Web API项目,请访问Web选项卡上的属性
  2. 去,你会看到项目URL文本框
  3. 这会告诉你你的网页API项目的基本URL。 (即http://localhost:8526
  4. 然后转到WebApiConfig.cs检查URL路由模式。

    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web.Http; 
    
    namespace StandardWebApiTemplateProject 
    { 
        public static class WebApiConfig 
        { 
         public static void Register(HttpConfiguration config) 
         { 
          config.Routes.MapHttpRoute(
           name: "DefaultApi", 
           routeTemplate: "api/{controller}/{id}", 
           defaults: new { id = RouteParameter.Optional } 
          ); 
         } 
        } 
    } 
    

如果你有路径模板一样 -

routeTemplate: "api/{controller}/{id}" then your url will be like 
ie. http://localhost:8526/api/ControllerName/89 

,如果你在路径模板包括操作名称则情况就会像下面

routeTemplate: "api/{controller}/{action}/{id}" then your url will be like 
ie. http://localhost:8526/api/ControllerName/ActionName/89 
+0

谢谢Ankush。你的解释#2给了我我正在寻找的东西。非常感谢。 – Vivek