springboot swagger3“无法加载远程配置,”

3df52oht  于 2022-12-23  发布在  Spring
关注(0)|答案(6)|浏览(377)

带Springdoc的Spring Boot2.6.3。

<dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-ui</artifactId>
            <version>1.6.5</version>
        </dependency>

applicaton.yaml中,当我将路径设置为/v3/api-docs或将其删除时,这意味着使用默认路径"/v3/api-docs "。
但我想覆盖路径如下

api-docs.path: /bus/v3/api-docs

然后Swagger UI显示"加载远程配置失败"错误:

ru9i0ody

ru9i0ody1#

Make sure to add "/v3/api-docs/**" in configure method.
@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/swagger-ui/**", "
/v3/api-docs/**");
    }
}
ui7jx7zq

ui7jx7zq2#

如果你在你的应用中使用Spring Security,你必须在配置中包含URL。请将下面的代码添加到你的项目中。

@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/swagger-ui/**", "/bus/v3/api-docs/**");
    }
}
1qczuiv0

1qczuiv03#

我也遇到过同样的问题,如果您使用反向代理,修复方法是在application.yml中添加以下属性

server:
  forward-headers-strategy: framework

这是由于以下原因而需要的
Swagger依赖于内部路由从客户端的Angular 发出请求,如果不提供X-Forwarded头就将服务置于反向代理之后,将导致用户无法按预期使用文档
源-〉https://medium.com/swlh/swagger-spring-boot-2-with-a-reverse-proxy-in-docker-8a8795aa3da4

3xiyfsfu

3xiyfsfu4#

在浏览器中执行“清空缓存和硬刷新”。

owfi6suc

owfi6suc5#

我想我已经解决了这个问题(感谢@Ivan Zaitsev),只是想对答案做更多的澄清。
我也修改了api-docs. path属性,遇到了同样的问题。当我检查swagger UI页面上的请求时,swagger-config请求返回404,因为它仍然试图从旧URL获取配置。
尽管我已经更改了api-docs.path属性,但下面是尝试检索swagger-config的请求URL。http://localhost:8080/api/v3/api-docs/swagger-config
这是一个与openapi-ui有关的问题,因为我在清除浏览器缓存和cookie时就解决了这个问题。最好使用incognito浏览器进行测试,因为它不保存任何会话数据。

hc2pp10m

hc2pp10m6#

如果您使用的是SpringBoot v3,则必须使用springdoc-openapi v2
https://springdoc.org/v2/
例如,对于Gradle:

implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'

相关问题