From d45cb0712cebfd4723079f8d0dccaf07aa1422ea Mon Sep 17 00:00:00 2001 From: tjq Date: Sun, 5 Mar 2023 12:15:19 +0800 Subject: [PATCH] fix: openapi can't work in springboot 2.7.4 #559 --- powerjob-server/pom.xml | 23 ++------ .../powerjob/server/config/SwaggerConfig.java | 57 ++++++++++--------- 2 files changed, 36 insertions(+), 44 deletions(-) diff --git a/powerjob-server/pom.xml b/powerjob-server/pom.xml index e1eb723a..11cd1694 100644 --- a/powerjob-server/pom.xml +++ b/powerjob-server/pom.xml @@ -26,7 +26,6 @@ - 2.9.2 2.7.4 @@ -53,6 +52,7 @@ 4.3.0 4.3.0 4.3.0 + 1.6.14 @@ -264,25 +264,14 @@ ${cron-utils.version} - + - io.springfox - springfox-swagger2 - ${swagger.version} - - - guava - com.google.guava - - - - - - io.springfox - springfox-swagger-ui - ${swagger.version} + org.springdoc + springdoc-openapi-ui + ${springdoc-openapi-ui.version} + org.codehaus.groovy diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/config/SwaggerConfig.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/config/SwaggerConfig.java index f9c7a2fd..8196335b 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/config/SwaggerConfig.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/config/SwaggerConfig.java @@ -1,55 +1,58 @@ package tech.powerjob.server.config; +import io.swagger.v3.oas.models.ExternalDocumentation; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.info.License; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springdoc.core.GroupedOpenApi; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; import tech.powerjob.server.common.PowerJobServerConfigKey; import tech.powerjob.server.remote.server.self.ServerInfoService; -import javax.annotation.Resource; - -import static springfox.documentation.builders.PathSelectors.any; - /** * Configuration class for Swagger UI. + * migrate to springdoc from v4.3.1 + * api address * * @author tjq * @author Jiang Jining * @since 2020/3/29 */ +@Slf4j @Configuration -@EnableSwagger2 @ConditionalOnProperty(name = PowerJobServerConfigKey.SWAGGER_UI_ENABLE, havingValue = "true") @RequiredArgsConstructor public class SwaggerConfig { private final ServerInfoService serverInfoService; - - @Bean - public Docket createRestApi() { + @Bean + public OpenAPI springShopOpenAPI() { // apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中 - ApiInfo apiInfo = new ApiInfoBuilder() - .title("PowerJob") - .description("Distributed scheduling and computing framework.") - .license("Apache Licence 2") - .termsOfServiceUrl("https://github.com/PowerJob/PowerJob") - .version(serverInfoService.fetchServiceInfo().getVersion()) - .build(); - - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo) - // select()函数返回一个ApiSelectorBuilder实例 - .select() - // 决定了暴露哪些接口给 Swagger - .paths(any()) + return new OpenAPI() + .info(new Info().title("PowerJob") + .description("Distributed scheduling and computing framework.") + .version(serverInfoService.fetchServiceInfo().getVersion()) + .license(new License().name("Apache License 2.0").url("https://github.com/PowerJob/PowerJob/blob/master/LICENSE"))) + .externalDocs(new ExternalDocumentation() + .description("Distributed scheduling and computing framework.") + .url("http://www.powerjob.tech/")); + } + + @Bean + public GroupedOpenApi createRestApi() { + + log.warn("[OpenAPI] openapi has been activated, make sure you want to enable it!"); + + return GroupedOpenApi.builder() + .group("PowerJob-ALL") + .pathsToMatch("/**") .build(); + } }