xiaoymin / knife4j

Knife4j is a set of Swagger2 and OpenAPI3 All-in-one enhancement solution
https://doc.xiaominfo.com
Apache License 2.0
4.06k stars 612 forks source link

域名+baseUrl访问doc.html时,请求v3/api-docs/default丢失baseUrl #727

Open smile-everyday opened 7 months ago

smile-everyday commented 7 months ago

image 如图,我在请求https://xxxx.com/edu/edu-wings-admin/doc.html时,会查询swagger-config和default的配置信息,查询swagger-config会拼接/edu/edu-wings-admin,但是查询default接口时就丢失了该路径,该baseUrl是nginx做的映射,并非服务设置的context-path

使用版本:knife4j-openapi3-spring-boot-starter:4.3.0 配置如下: image

smile-everyday commented 7 months ago

springdoc.api-docs.path 配置上前缀后,又会导致请求swagger-config接口缺少一个前缀而报404

smile-everyday commented 7 months ago

@xiaoymin 麻烦确认下

xiaoymin commented 7 months ago

这个好像是要配nginx的转发头的,x-forward-prefix

你可以试试看,不过springdoc在不同的版本会有区别,我有点忘了那个版本支持了这个header了

smile-everyday commented 7 months ago

应该不是这个问题,请求swagger-config是自动加上了前缀的,但是swagger-config返回的url没有这个前缀,我目前是通过Filter修改swagger-config的返回值解决的

lgxisbb commented 3 months ago

同问题+1

SiriusTseng commented 3 months ago

在这里找到了解决方案,https://springdoc.org/#how-can-i-deploy-springdoc-openapi-starter-webmvc-ui-behind-a-reverse-proxy

lgxisbb commented 3 months ago

在这里找到了解决方案,https://springdoc.org/#how-can-i-deploy-springdoc-openapi-starter-webmvc-ui-behind-a-reverse-proxy

这个应该是个很常见的问题, 感觉大佬 @xiaoymin 可以+ 到FAQ里.

zldaysleepy commented 3 months ago

这个问题在knife4j-openapi2-spring-boot-starter 4.3.0 版本中是不存在的

zldaysleepy commented 3 months ago

这个问题在 knife4j-openapi2-spring-boot-starter 4.3.0 版本中不存在

但是在knife4j-openapi3-spring-boot-starter:4.3.0中存在