You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在子路径上使用MapControllers统一配置API路由前缀?

统一给所有API控制器添加api/前缀的两种方法

不用逐个修改控制器的[Route]属性,有两种简单的全局配置方式:

方法1:使用路由组(推荐,.NET 6+)

直接在注册控制器路由时,用MapGroup创建前缀为api的路由组,再把控制器映射到这个组里:

// 替换原来的 app.MapControllers();
app.MapGroup("api").MapControllers();

这样所有控制器的路由都会自动带上api/前缀,你的AwesomeController访问路径就变成https://mycompany.com/api/awesome,控制器代码完全不用改。

方法2:使用全局路由约定

如果需要更统一的全局配置,可以在添加控制器服务时设置RoutePrefix:

builder.Services.AddControllers(options =>
{
    // 给所有控制器统一添加api前缀
    options.RoutePrefix = "api";
});

// 依然保留 app.MapControllers();
app.MapControllers();

这种方式会给所有带[ApiController]属性的控制器自动加上api/前缀,同样不需要修改控制器的Route属性。

两种方法都能满足你的需求,路由组的方式更灵活,后续还可以给不同组设置不同前缀或者中间件;全局约定则是一次性给所有控制器统一配置,按需选择就行。

内容的提问来源于stack exchange,提问作者rabejens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 17:10:16