diff --git a/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/config/SwaggerAutoConfiguration.java b/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/config/SwaggerAutoConfiguration.java index 829b8f3b5..39eb33cf8 100644 --- a/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/config/SwaggerAutoConfiguration.java +++ b/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/config/SwaggerAutoConfiguration.java @@ -62,7 +62,7 @@ public class SwaggerAutoConfiguration { if (CollUtil.isEmpty(swaggerProperties.getBasePath())) { swaggerProperties.getBasePath().add(BASE_PATH); } - + //noinspection unchecked List> basePath = new ArrayList(); swaggerProperties.getBasePath().forEach(path -> basePath.add(PathSelectors.ant(path))); @@ -70,13 +70,14 @@ public class SwaggerAutoConfiguration { if (CollUtil.isEmpty(swaggerProperties.getExcludePath())) { swaggerProperties.getExcludePath().add(DEFAULT_EXCLUDE_PATH); } - List> excludePath = new ArrayList<>(); swaggerProperties.getExcludePath().forEach(path -> excludePath.add(PathSelectors.ant(path))); + //noinspection Guava return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()).select() - .apis(RequestHandlerSelectors.any()) + .host(swaggerProperties.getHost()) + .apiInfo(apiInfo(swaggerProperties)).select() + .apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage())) .paths(Predicates.and(Predicates.not(Predicates.or(excludePath)), Predicates.or(basePath))) .build() .securitySchemes(Collections.singletonList(securitySchema())) @@ -86,7 +87,7 @@ public class SwaggerAutoConfiguration { private SecurityContext securityContext() { return SecurityContext.builder().securityReferences(defaultAuth()) - .forPaths(PathSelectors.ant("/**")) + .forPaths(PathSelectors.ant(BASE_PATH)) .build(); } @@ -114,13 +115,15 @@ public class SwaggerAutoConfiguration { return new OAuth("pigX OAuth", authorizationScopeList, grantTypes); } - private ApiInfo apiInfo() { + private ApiInfo apiInfo(SwaggerProperties swaggerProperties) { return new ApiInfoBuilder() - .title("PigX Swagger API ") - .description("https://gitee.com/log4j/pig/wikis") - .termsOfServiceUrl("https://gitee.wang/pig/pigx") - .contact(new Contact("冷冷", "https://gitee.wang/pig/pigx", "wangiegie@gmail.com")) - .version("2.0") + .title(swaggerProperties.getTitle()) + .description(swaggerProperties.getDescription()) + .license(swaggerProperties.getLicense()) + .licenseUrl(swaggerProperties.getLicenseUrl()) + .termsOfServiceUrl(swaggerProperties.getTermsOfServiceUrl()) + .contact(new Contact(swaggerProperties.getContact().getName(), swaggerProperties.getContact().getUrl(), swaggerProperties.getContact().getEmail())) + .version(swaggerProperties.getVersion()) .build(); } diff --git a/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/config/SwaggerProperties.java b/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/config/SwaggerProperties.java index 51994ea3d..56e0edf9a 100644 --- a/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/config/SwaggerProperties.java +++ b/pigx-common/pigx-common-swagger/src/main/java/com/pig4cloud/pigx/common/swagger/config/SwaggerProperties.java @@ -1,7 +1,25 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ package com.pig4cloud.pigx.common.swagger.config; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; @@ -9,12 +27,16 @@ import java.util.List; /** * SwaggerProperties * - * @author: lisb + * @author: lengleng * @date: 2018/7/25 14:00 */ @Data @ConfigurationProperties("swagger") public class SwaggerProperties { + /** + * swagger会解析的包路径 + **/ + private String basePackage = ""; /** * swagger会解析的url规则 **/ @@ -23,4 +45,56 @@ public class SwaggerProperties { * 在basePath基础上需要排除的url规则 **/ private List excludePath = new ArrayList<>(); + /** + * 标题 + **/ + private String title = "PigX Swagger API"; + /** + * 描述 + **/ + private String description = "https://gitee.com/log4j/pig/wikis"; + /** + * 版本 + **/ + private String version = "2.0"; + /** + * 许可证 + **/ + private String license = "Powered By PigX"; + /** + * 许可证URL + **/ + private String licenseUrl = "https://gitee.com/log4j/pig/wikis"; + /** + * 服务条款URL + **/ + private String termsOfServiceUrl = "https://gitee.wang/pig/pigx"; + + /** + * 忽略的参数类型 + **/ + private List> ignoredParameterTypes = new ArrayList<>(); + /** + * host信息 + **/ + private String host = ""; + private Contact contact = new Contact(); + @Data + @NoArgsConstructor + public static class Contact { + + /** + * 联系人 + **/ + private String name = "冷冷"; + /** + * 联系人url + **/ + private String url = "https://gitee.wang/pig/pigx"; + /** + * 联系人email + **/ + private String email = "wangiegie@gmail.com"; + + } } diff --git a/pigx-config/src/main/resources/config/pigx-upms-dev.yml b/pigx-config/src/main/resources/config/pigx-upms-dev.yml index 1ff1f4723..4018c7f42 100644 --- a/pigx-config/src/main/resources/config/pigx-upms-dev.yml +++ b/pigx-config/src/main/resources/config/pigx-upms-dev.yml @@ -40,4 +40,13 @@ mybatis-plus: cache-enabled: true # swagger相关配置 swagger: - exclude-path: /actuator/**,/error + description: '全宇宙最牛逼的Spring Cloud微服务开发脚手架' + version: '1.2.4' + #base-package: com.pig4cloud.pigx.admin.controller + exclude-path: + - /actuator/** + - /error + contact: + name: '冷冷' + email: 'wangiegie@gmail.com' + url: 'https://gitee.wang/pig/pigx'