package tech.powerjob.server.config; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Contact; 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 tech.powerjob.server.common.PowerJobServerConfigKey; import tech.powerjob.server.remote.server.self.ServerInfoService; /** * 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 @ConditionalOnProperty(name = PowerJobServerConfigKey.SWAGGER_UI_ENABLE, havingValue = "true") @RequiredArgsConstructor public class SwaggerConfig { private final ServerInfoService serverInfoService; @Bean public OpenAPI springShopOpenAPI() { final Contact contact = new Contact(); contact.setName("Team PowerJob"); contact.setUrl("http://www.powerjob.tech"); contact.setEmail("tengjiqi@gmail.com"); // apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中 return new OpenAPI() .info(new Info().title("PowerJob") .description("Distributed scheduling and computing framework.") .version(serverInfoService.fetchCurrentServerInfo().getVersion()) .contact(contact) .license(new License().name("Apache License 2.0").url("https://github.com/PowerJob/PowerJob/blob/master/LICENSE"))); } @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(); } }