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

如何为Springfox 2.8.0 Swagger设置友好的基础访问URL

修改Springfox Swagger 2.8.0的基础访问路径

我来帮你搞定这个Swagger访问路径修改的问题~针对你用的Spring Boot 2.0 + Springfox 2.8.0技术栈,要把Swagger UI的访问地址从http://localhost:8080/swagger-ui.html改成http://localhost:8080/myapi/swagger-ui.html,可以按下面的步骤来配置:

1. 自定义Swagger的路径前缀

你已经用到了RelativePathProvider,可以接着完善这个配置,让Swagger生成的文档路径都带上/myapi前缀:

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Bean
    public Docket api(ServletContext servletContext) {
        return new Docket(DocumentationType.SWAGGER_2)
                // 自定义路径提供者,指定基础路径
                .pathProvider(new RelativePathProvider(servletContext) {
                    @Override
                    public String getApplicationBasePath() {
                        return "/myapi";
                    }
                })
                .select()
                // 这里替换成你自己的Controller包路径
                .apis(RequestHandlerSelectors.basePackage("com.your.project.controller"))
                .paths(PathSelectors.any())
                .build();
    }
}

2. 配置Spring Boot的全局上下文路径

光改Swagger的配置还不够,得让整个应用的请求都带上/myapi前缀,这样Swagger UI的访问路径才会生效。你可以在配置文件里设置:

如果用application.properties:

server.servlet.context-path=/myapi

如果用application.yml:

server:
  servlet:
    context-path: /myapi

最后验证一下

重启你的Spring Boot应用后,就可以通过http://localhost:8080/myapi/swagger-ui.html访问Swagger UI了,对应的API文档JSON地址是http://localhost:8080/myapi/v2/api-docs。

提醒一下:要是只改Swagger的路径提供者,不设置Spring Boot的上下文路径,可能会出现Swagger文档里的接口路径和实际访问路径不匹配的问题,所以建议两个配置都加上哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:04:08