Swagger2 WebFlux小试牛刀

37次阅读

共计 1544 个字符,预计需要花费 4 分钟才能阅读完成。


本文主要展示一下如何使用支持 WebFlux 的 Swagger
maven
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-spring-webflux</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
swagger.version 目前是 3.0.0-SNAPSHOT,因而没有发布到 maven 官方仓库里头,需要从 jcenter-snapshots 中拉取
<repositories>
<repository>
<id>jcenter-snapshots</id>
<name>jcenter</name>
<url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
</repository>
</repositories>
配置
@Configuration
@EnableSwagger2WebFlux
public class SwaggerConfig {

@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.description(“example api”)
.title(“example api”)
.version(“1.0.0”)
.build())
.select()
.apis(RequestHandlerSelectors.basePackage(“com.example.controller”))
.paths(PathSelectors.any())
.build();

}
}
由于支持了 WebFlux,所以之前的 @EnableSwagger2 就移除掉了,变为 @EnableSwagger2WebMvc 以及 @EnableSwagger2WebFlux,这里使用的是 @EnableSwagger2WebFlux
小结

Spring 5 引入了 WebFlux,而当前版本的 SpringFox Swagger2(2.9.2) 还不支持 WebFlux,得使用 3.0.0-SNAPSHOT 才支持
由于是 SNAPSHOT 版本,因而没有发布到 maven 官方仓库里头,需要从 jcenter-snapshots 中拉取,另外要使用支持 WebFlux 的 Swagger2 需要引入 springfox-spring-webflux 依赖
由于支持了 WebFlux,所以之前的 @EnableSwagger2 就移除掉了,变为 @EnableSwagger2WebMvc 以及 @EnableSwagger2WebFlux

doc

springfox docs snapshot
Maven repository for springfox-spring-webflux ? #2939
spring-boot-webflux-swagger-starter

正文完
 0