web api 项目的默认路由

Posted

技术标签:

【中文标题】web api 项目的默认路由【英文标题】:Default routing for web api project 【发布时间】:2020-10-29 14:55:06 【问题描述】:

当我创建一个新的ASP.NET Core Web Application 并选择API 项目模板并运行它时,它会路由到http://localhost:64221/weatherforecast。我可以知道它在哪里配置默认路由到weatherforecast web api?在configure 方法中,我没有看到到weatherforecast 的任何默认路由。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    
        if (env.IsDevelopment())
        
            app.UseDeveloperExceptionPage();
        

        app.UseRouting();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        
            endpoints.MapControllers();
        );
    

【问题讨论】:

【参考方案1】:

路由在launchSettings.json中配置,可以在properties中找到

这些是您可以更改以获得另一条路线的属性

"applicationUrl": "http://localhost:5002","launchUrl": "swagger",

【讨论】:

【参考方案2】:

我可以知道它在哪里配置到 weatherforecast web api 的默认路由吗?

在Startup类的Configure方法中,可以发现endpoints.MapControllers() 方法被调用,它只映射带有routing attributes 修饰的控制器。

WeatherForecastControllerclass 中,您会发现[Route("[controller]")] 已应用于它,如下所示。

[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
 

此外,您可以查看the source code of MapControllers(IEndpointRouteBuilder) method 并了解其工作原理。

【讨论】:

以上是关于web api 项目的默认路由的主要内容,如果未能解决你的问题,请参考以下文章

在路由组上设置默认保护

ASP.NET Web API路由规

Web API中的路由——基本路由

vue运行项目默认首页路由配置

Web-API 的路由配置

webapi初学项目(增删改查)