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

如何配置Swagger,避免请求路径中嵌入v2/api-docs?

解决Swagger请求路径自动添加v2/api-docs的问题

1. Springfox Swagger2(旧版本)配置

要是你用的是Springfox的Swagger2依赖,核心是在Docket配置里指定正确的根路径,覆盖默认的v2/api-docs前缀:

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.your.package")) // 替换成你的接口包路径
                .paths(PathSelectors.any())
                .build()
                .pathMapping("/") // 关键设置:把基础路径设为根路径,避免自动拼接v2/api-docs
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("你的API文档")
                .version("1.0")
                .build();
    }
}

另外检查配置文件,别留错误的路径设置:

  • 打开application.properties或application.yml,删掉这类强制指定swagger路径的配置:
    # 要删掉的错误配置示例
    # springfox.documentation.swagger.v2.path=/v2/api-docs
    

2. SpringDoc OpenAPI 3(新版本)配置

如果用的是替代Springfox的SpringDoc新版,直接在OpenAPI配置里指定服务器基础URL:

@Configuration
public class OpenApiConfig {
    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .servers(List.of(new Server().url("/"))) // 设置根路径作为服务器基础URL
                .info(new Info().title("你的API文档").version("1.0"));
    }
}

也可以用配置文件来设置:

springdoc:
  swagger-ui:
    path: /swagger-ui.html
  api-docs:
    path: /v3/api-docs
  server:
    base-path: / # 指定基础路径为根路径

3. 额外要检查的点

  • 确认你的应用上下文路径(context-root)配置正确,比如应用部署在/my-app下,就把上面配置里的/改成/my-app
  • 清一下浏览器缓存,防止Swagger UI加载旧的配置缓存
  • 排查下有没有拦截器或网关修改请求路径,确保Swagger生成的路径不会被额外拼接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:48:20