突然 Springfox Swagger 3.0 无法与 spring webflux 一起使用
Suddenly Springfox Swagger 3.0 is not working with spring webflux
几天前,应用程序正在使用 Springfox Swagger 3.0。突然它停止工作。一周前创建的 Jar 文件仍在工作,但现在当我们尝试构建一个新的 Jar 文件时,它不起作用,即使没有任何 code/library 更改。我什至提到了下面的 URL 但仍然面临问题。
下面给出了我的配置:
POM 文件:
<properties>
<java.version>1.8</java.version>
<springfox.version>3.0.0-SNAPSHOT</springfox.version>
<spring.version>2.3.1.RELEASE</spring.version>
</properties>
<repositories>
<repository>
<id>spring-libs-milestone</id>
<name>Spring Milestone Maven Repository</name>
<url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-spring-webflux</artifactId>
<version>${springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox.version}</version>
</dependency>
</dependencies>
配置文件:
@Configuration
@EnableSwagger2WebFlux
public class SwaggerConfiguration implements WebFluxConfigurer {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.description("My Reactive API")
.title("My Domain object API")
.version("1.0.0")
.build())
.enable(true)
.select()
.apis(RequestHandlerSelectors.basePackage("com.reactive.controller"))
.paths(PathSelectors.any())
.build();
}
@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/");
}
}
当我尝试打开 swagger 页面时出现 404 错误。
http://localhost:8080/swagger-ui.html
有人可以帮我解决这个问题吗?提前致谢。
实施最近发生了变化(请参阅 migrating from earlier snapshots 了解有关此的简要更新)。
现在 UI 在 /swagger-ui
端点(不是 /swagger-ui.html
)下可用。
您还应该删除 @EnableSwagger2WebFlux
注释和 addResourceHandlers()
方法,删除所有 springfox 依赖项并只添加一个:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${springfox.version}</version>
</dependency>
在 Springboot Rest 中开始使用 Swagger-3 API
对于新项目
对于 Maven:-
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
对于Gradle:-
implementation "io.springfox:springfox-boot-starter:<version>"
现在没有像以前那样在 spring-boot 项目上激活 swagger
的额外配置。如果尝试配置安全性,则有一些配置。请参考这个 article.
在 swagger 版本 3 中也删除了 @EnableSwagger2
注释基础配置。
并且大多数用户尝试使用 {host}/swagger-ui.html
或 {host}/swagger-ui
查找 HTML swagger 文档文件,这些文件现在已被删除。
使用 {host}/swagger-ui/
查看HTML文档
这是 GitHub 上的 sample project link
请参阅文档 io.springfox
这就是我的工作方式。我正在使用 InteliJ IDEA、SpringBoot 和 Maven。
添加 Swagger 依赖项时:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
它们是红色的,我根本无法添加它们。我尝试重新加载我的项目、生成源代码和更新文件夹,但我就是无法安装它。
然后我也添加了这个依赖:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
而且效果很好。另外,我在这里找到了我对问题的结论:
所以最后我的 pom.xml 文件中有这个:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
要使用 Swagger 3.0 在您的浏览器中查看 Swagger UI
http://localhost:8080/swagger-ui/index.html
希望对某人有所帮助:)
好的,在阅读了所有内容并尽了最大努力之后,我在 /swagger-ui/index 上大摇大摆-ui。html#
https://github.com/springfox/springfox-demos/tree/master/boot-swagger
仅使用此依赖项而不使用 io.springfox 依赖项
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
现在没有像以前那样在 spring-boot 项目上激活 swagger 的额外配置。
在 swagger 版本 3.0.0 中删除 @Configuration 和 @EnableSwagger2 以及注释。
使用 {host}/swagger-ui/ 查看 HTML 文档,{host}/swagger-ui.html 或 {host}/swagger-ui 那些现在被删除了。施耐德
几天前,应用程序正在使用 Springfox Swagger 3.0。突然它停止工作。一周前创建的 Jar 文件仍在工作,但现在当我们尝试构建一个新的 Jar 文件时,它不起作用,即使没有任何 code/library 更改。我什至提到了下面的 URL 但仍然面临问题。
下面给出了我的配置:
POM 文件:
<properties>
<java.version>1.8</java.version>
<springfox.version>3.0.0-SNAPSHOT</springfox.version>
<spring.version>2.3.1.RELEASE</spring.version>
</properties>
<repositories>
<repository>
<id>spring-libs-milestone</id>
<name>Spring Milestone Maven Repository</name>
<url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-spring-webflux</artifactId>
<version>${springfox.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox.version}</version>
</dependency>
</dependencies>
配置文件:
@Configuration
@EnableSwagger2WebFlux
public class SwaggerConfiguration implements WebFluxConfigurer {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.description("My Reactive API")
.title("My Domain object API")
.version("1.0.0")
.build())
.enable(true)
.select()
.apis(RequestHandlerSelectors.basePackage("com.reactive.controller"))
.paths(PathSelectors.any())
.build();
}
@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/");
}
}
当我尝试打开 swagger 页面时出现 404 错误。
http://localhost:8080/swagger-ui.html
有人可以帮我解决这个问题吗?提前致谢。
实施最近发生了变化(请参阅 migrating from earlier snapshots 了解有关此的简要更新)。
现在 UI 在 /swagger-ui
端点(不是 /swagger-ui.html
)下可用。
您还应该删除 @EnableSwagger2WebFlux
注释和 addResourceHandlers()
方法,删除所有 springfox 依赖项并只添加一个:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${springfox.version}</version>
</dependency>
在 Springboot Rest 中开始使用 Swagger-3 API
对于新项目
对于 Maven:-
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
对于Gradle:-
implementation "io.springfox:springfox-boot-starter:<version>"
现在没有像以前那样在 spring-boot 项目上激活 swagger
的额外配置。如果尝试配置安全性,则有一些配置。请参考这个 article.
在 swagger 版本 3 中也删除了 @EnableSwagger2
注释基础配置。
并且大多数用户尝试使用 {host}/swagger-ui.html
或 {host}/swagger-ui
查找 HTML swagger 文档文件,这些文件现在已被删除。
使用 {host}/swagger-ui/
查看HTML文档
这是 GitHub 上的 sample project link
请参阅文档 io.springfox
这就是我的工作方式。我正在使用 InteliJ IDEA、SpringBoot 和 Maven。
添加 Swagger 依赖项时:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
它们是红色的,我根本无法添加它们。我尝试重新加载我的项目、生成源代码和更新文件夹,但我就是无法安装它。
然后我也添加了这个依赖:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
而且效果很好。另外,我在这里找到了我对问题的结论:
所以最后我的 pom.xml 文件中有这个:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
要使用 Swagger 3.0 在您的浏览器中查看 Swagger UI
http://localhost:8080/swagger-ui/index.html
希望对某人有所帮助:)
好的,在阅读了所有内容并尽了最大努力之后,我在 /swagger-ui/index 上大摇大摆-ui。html#
https://github.com/springfox/springfox-demos/tree/master/boot-swagger
仅使用此依赖项而不使用 io.springfox 依赖项
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
现在没有像以前那样在 spring-boot 项目上激活 swagger 的额外配置。
在 swagger 版本 3.0.0 中删除 @Configuration 和 @EnableSwagger2 以及注释。
使用 {host}/swagger-ui/ 查看 HTML 文档,{host}/swagger-ui.html 或 {host}/swagger-ui 那些现在被删除了。施耐德