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

如何在Swagger中为不同控制器配置独立的专属访问地址

实现Swagger多分组独立访问路径的配置方法

你现有的控制器特性标注、AddSwaggerGen 服务注册逻辑都无需修改,只需要调整Configure方法中的Swagger中间件配置即可,核心思路是为每个分组单独注册SwaggerUI中间件实例,指定独立的路由前缀。


修改后的Startup.cs Configure方法代码

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 保留Swagger生成中间件,可按需自定义swagger.json的存储路径
    app.UseSwagger(c =>
    {
        // 可选配置:自定义swagger.json的路由模板,默认是 "swagger/{documentName}/swagger.json"
        // 如果启用该配置,下方SwaggerEndpoint的路径需要同步修改为 "/docs/{分组名}/swagger.json"
        // c.RouteTemplate = "docs/{documentName}/swagger.json";
    });

    // 配置Test分组独立文档入口:对应访问地址 baseurl/docs/test/index.html
    app.UseSwaggerUI(c =>
    {
        c.RoutePrefix = "docs/test";
        c.SwaggerEndpoint("/swagger/Test/swagger.json", "Test 接口文档");
    });

    // 配置Test2分组独立文档入口:对应访问地址 baseurl/docs/test2/index.html
    app.UseSwaggerUI(c =>
    {
        c.RoutePrefix = "docs/test2";
        c.SwaggerEndpoint("/swagger/Test2/swagger.json", "Test2 接口文档");
    });

    // 其他原有中间件配置(如UseRouting、UseAuthorization等)保持不变
}

效果验证

启动项目后:

  • 访问{你的服务域名}/docs/test 即可进入仅展示TestController接口的专属文档页
  • 访问{你的服务域名}/docs/test2 即可进入仅展示Test2Controller接口的专属文档页
  • 两个文档页完全独立,互不干扰

内容的提问来源于stack exchange,提问作者Mohamad Hasan Salmaaniyaan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 10:03:03