最近我从 SpringFox 2 迁移到 Springdoc + OpenAPI 3。它更快一点,并且在我的本地环境中完美运行。
当我尝试在生产环境中使用它时,Swagger UI 页面可以正常打开。问题是当我点击 API 端点时,Swagger UI 显示此错误消息:
浏览器控制台的错误是:
混合内容:“https://
/swagger-ui/index.html#/Ravel/getLabelFormats”页面是通过 HTTPS 加载的,但请求了不安全的资源“http:// /labels?language=10&includeData=”错误的'。该请求已被阻止;内容必须通过 HTTPS 提供。
我在 Spring Boot 项目中启用了 CORS:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*");
}
这是我的 Pom 文件:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-annotations -->
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
<version>2.2.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-models -->
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-models</artifactId>
<version>2.2.8</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>4.1.79.Final</version>
</dependency>
我的
application.yml
文件配置:
springdoc:
swagger-ui:
enabled: true
disable-swagger-default-url: true
api-docs:
path: /v3/api-docs
Java 8
春季启动 2.7.8
我不知道我忘记了什么配置。有人可以给我指路吗?
尝试使用“http”而不是“https”。