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.
的控制器
而在 WeatherForecastController
class 中,您会发现 [Route("[controller]")]
应用于它,如下所示。
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
此外,您可以查看 the source code of MapControllers(IEndpointRouteBuilder)
method 并了解其工作原理。
当我创建一个新的 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.
而在 WeatherForecastController
class 中,您会发现 [Route("[controller]")]
应用于它,如下所示。
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
此外,您可以查看 the source code of MapControllers(IEndpointRouteBuilder)
method 并了解其工作原理。