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 修饰的控制器。
在WeatherForecastController
class 中,您会发现[Route("[controller]")]
已应用于它,如下所示。
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
此外,您可以查看the source code of MapControllers(IEndpointRouteBuilder)
method 并了解其工作原理。
【讨论】:
以上是关于web api 项目的默认路由的主要内容,如果未能解决你的问题,请参考以下文章