From e2de22bdce173a951083a81d0065c69d8e5e9832 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 28 九月 2021 18:26:08 +0800
Subject: [PATCH] update 优化 代码生成常量 关于 BO VO 注释
---
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java | 161 ++++++++++++++++++++++++++++-------------------------
1 files changed, 85 insertions(+), 76 deletions(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
index 7b5d951..76d1076 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
@@ -1,11 +1,12 @@
package com.ruoyi.framework.config;
+import cn.dev33.satoken.SaManager;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.framework.config.properties.SwaggerProperties;
-import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
@@ -15,11 +16,12 @@
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
+import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;
/**
- * Swagger2鐨勬帴鍙i厤缃�
+ * Swagger 鏂囨。閰嶇疆
*
* @author Lion Li
*/
@@ -27,82 +29,89 @@
@EnableKnife4j
public class SwaggerConfig {
- @Autowired
- private SwaggerProperties swaggerProperties;
+ @Autowired
+ private SwaggerProperties swaggerProperties;
- /**
- * 鍒涘缓API
- */
- @Bean
- public Docket createRestApi() {
- return new Docket(DocumentationType.OAS_30)
- .enable(swaggerProperties.getEnabled())
- // 鐢ㄦ潵鍒涘缓璇PI鐨勫熀鏈俊鎭紝灞曠ず鍦ㄦ枃妗g殑椤甸潰涓紙鑷畾涔夊睍绀虹殑淇℃伅锛�
- .apiInfo(apiInfo())
- // 璁剧疆鍝簺鎺ュ彛鏆撮湶缁橲wagger灞曠ず
- .select()
- // 鎵弿鎵�鏈夋湁娉ㄨВ鐨刟pi锛岀敤杩欑鏂瑰紡鏇寸伒娲�
- .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
- // 鎵弿鎸囧畾鍖呬腑鐨剆wagger娉ㄨВ
- // .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger"))
- // 鎵弿鎵�鏈� .apis(RequestHandlerSelectors.any())
- .paths(PathSelectors.any())
- .build()
- /* 璁剧疆瀹夊叏妯″紡锛宻wagger鍙互璁剧疆璁块棶token */
- .securitySchemes(securitySchemes())
- .securityContexts(securityContexts())
- .pathMapping(swaggerProperties.getPathMapping());
- }
+ /**
+ * 鍒涘缓API
+ */
+ @PostConstruct
+ public void createRestApi() {
+ for (SwaggerProperties.Groups group : swaggerProperties.getGroups()) {
+ String basePackage = group.getBasePackage();
+ Docket docket = new Docket(DocumentationType.OAS_30)
+ .enable(swaggerProperties.getEnabled())
+ // 鐢ㄦ潵鍒涘缓璇PI鐨勫熀鏈俊鎭紝灞曠ず鍦ㄦ枃妗g殑椤甸潰涓紙鑷畾涔夊睍绀虹殑淇℃伅锛�
+ .apiInfo(apiInfo())
+ // 璁剧疆鍝簺鎺ュ彛鏆撮湶缁橲wagger灞曠ず
+ .select()
+ // 鎵弿鎵�鏈夋湁娉ㄨВ鐨刟pi锛岀敤杩欑鏂瑰紡鏇寸伒娲�
+ //.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+ // 鎵弿鎸囧畾鍖呬腑鐨剆wagger娉ㄨВ
+ .apis(RequestHandlerSelectors.basePackage(basePackage))
+ // 鎵弿鎵�鏈� .apis(RequestHandlerSelectors.any())
+ .paths(PathSelectors.any())
+ .build()
+ .groupName(group.getName())
+ // 璁剧疆瀹夊叏妯″紡锛宻wagger鍙互璁剧疆璁块棶token
+ .securitySchemes(securitySchemes())
+ .securityContexts(securityContexts())
+ .pathMapping(swaggerProperties.getPathMapping());
+ String beanName = StringUtils.substringAfterLast(basePackage, ".") + "Docket";
+ SpringUtils.registerBean(beanName, docket);
+ }
+ }
- /**
- * 瀹夊叏妯″紡锛岃繖閲屾寚瀹歵oken閫氳繃Authorization澶磋姹傚ご浼犻��
- */
- private List<SecurityScheme> securitySchemes() {
- List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
- apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
- return apiKeyList;
- }
+ /**
+ * 瀹夊叏妯″紡锛岃繖閲屾寚瀹歵oken閫氳繃Authorization澶磋姹傚ご浼犻��
+ */
+ private List<SecurityScheme> securitySchemes() {
+ List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
+ String header = SaManager.getConfig().getTokenName();
+ apiKeyList.add(new ApiKey(header, header, In.HEADER.toValue()));
+ return apiKeyList;
+ }
- /**
- * 瀹夊叏涓婁笅鏂�
- */
- private List<SecurityContext> securityContexts() {
- List<SecurityContext> securityContexts = new ArrayList<>();
- securityContexts.add(
- SecurityContext.builder()
- .securityReferences(defaultAuth())
- .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
- .build());
- return securityContexts;
- }
+ /**
+ * 瀹夊叏涓婁笅鏂�
+ */
+ private List<SecurityContext> securityContexts() {
+ List<SecurityContext> securityContexts = new ArrayList<>();
+ securityContexts.add(
+ SecurityContext.builder()
+ .securityReferences(defaultAuth())
+ .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
+ .build());
+ return securityContexts;
+ }
- /**
- * 榛樿鐨勫畨鍏ㄤ笂寮曠敤
- */
- private List<SecurityReference> defaultAuth() {
- AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
- AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
- authorizationScopes[0] = authorizationScope;
- List<SecurityReference> securityReferences = new ArrayList<>();
- securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
- return securityReferences;
- }
+ /**
+ * 榛樿鐨勫畨鍏ㄤ笂寮曠敤
+ */
+ private List<SecurityReference> defaultAuth() {
+ AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+ AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+ authorizationScopes[0] = authorizationScope;
+ List<SecurityReference> securityReferences = new ArrayList<>();
+ securityReferences.add(new SecurityReference(SaManager.getConfig().getTokenName(), authorizationScopes));
+ return securityReferences;
+ }
- /**
- * 娣诲姞鎽樿淇℃伅
- */
- private ApiInfo apiInfo() {
- // 鐢ˋpiInfoBuilder杩涜瀹氬埗
- SwaggerProperties.Contact contact = swaggerProperties.getContact();
- return new ApiInfoBuilder()
- // 璁剧疆鏍囬
- .title(swaggerProperties.getTitle())
- // 鎻忚堪
- .description(swaggerProperties.getDescription())
- // 浣滆�呬俊鎭�
- .contact(new Contact(contact.getName(), contact.getUrl(), contact.getEmail()))
- // 鐗堟湰
- .version(swaggerProperties.getVersion())
- .build();
- }
+ /**
+ * 娣诲姞鎽樿淇℃伅
+ */
+ private ApiInfo apiInfo() {
+ // 鐢ˋpiInfoBuilder杩涜瀹氬埗
+ SwaggerProperties.Contact contact = swaggerProperties.getContact();
+ return new ApiInfoBuilder()
+ // 璁剧疆鏍囬
+ .title(swaggerProperties.getTitle())
+ // 鎻忚堪
+ .description(swaggerProperties.getDescription())
+ // 浣滆�呬俊鎭�
+ .contact(new Contact(contact.getName(), contact.getUrl(), contact.getEmail()))
+ // 鐗堟湰
+ .version(swaggerProperties.getVersion())
+ .build();
+ }
}
--
Gitblit v1.9.3