如何修改swagger-ui自动生成配置的默认端点/v3/api-docs/swagger-config
实现方案
方案1:纯application.properties配置(推荐)
Springdoc原生支持通过配置修改自动生成的api-docs相关端点的根路径,/v3/api-docs/swagger-config的默认路径是由springdoc.api-docs.path配置项拼接生成的,你只需要修改该配置即可让框架自动在自定义路径下生成配置端点,无需手动创建资源。
完整配置示例如下:
# 修改api-docs根路径,框架会自动生成/myPath/v3/api-docs/swagger-config配置端点 springdoc.api-docs.path=/myPath/v3/api-docs # 配置swagger-ui页面访问路径 springdoc.swagger-ui.path=/myPath/swagger-ui/index.html # 配置swagger-ui拉取配置的地址,和上方自动生成的端点路径保持一致 springdoc.swagger-ui.configUrl=/myPath/v3/api-docs/swagger-config
配置完成后重启服务即可生效。
方案2:代码配置路径前缀(适用于更复杂的路径映射场景)
如果你的场景存在Ingress路径重写、多环境路径前缀差异等特殊需求,也可以通过代码统一给Springdoc相关端点添加自定义前缀,以Spring MVC为例:
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class SpringdocCustomPathConfig implements WebMvcConfigurer { @Override public void configurePathMatch(PathMatchConfigurer configurer) { // 给所有Springdoc官方包下的接口统一添加/myPath前缀 configurer.addPathPrefix("/myPath", clazz -> clazz.getPackageName().startsWith("org.springdoc.webmvc") ); } }
如果使用的是Spring WebFlux,只需实现WebFluxConfigurer接口做同类配置即可。
配置完成后,Springdoc所有原生端点都会自动带上/myPath前缀,和你设置的swagger-ui配置地址匹配。
注意事项
如果服务接入了Spring Security,需要将/myPath/v3/api-docs/**、/myPath/swagger-ui/**相关路径加入放行规则,避免被鉴权逻辑拦截。
内容的提问来源于stack exchange,提问作者Marcin K.
相关产品推荐
相关产品推荐

