Web api 项目的默认路由

Default routing for web api project

当我创建一个新的 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();
        });
    }

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

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

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

May I know where it configures the default routing to weatherforecast web api?

在Startupclass的Configure方法中,可以发现endpoints.MapControllers() 方法被调用,它只映射装饰有 routing attributes.

的控制器

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

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

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