From 7077d3a7819de3229482e5a9edb4bd895ea2a49f Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Wed, 29 Oct 2025 16:04:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
ard-admin/src/main/java/com/ard/web/core/config/SwaggerConfig.java | 147 ++++++++++++++----------------------------------
1 files changed, 43 insertions(+), 104 deletions(-)
diff --git a/ard-admin/src/main/java/com/ard/web/core/config/SwaggerConfig.java b/ard-admin/src/main/java/com/ard/web/core/config/SwaggerConfig.java
index 9066a3c..dfeb8d7 100644
--- a/ard-admin/src/main/java/com/ard/web/core/config/SwaggerConfig.java
+++ b/ard-admin/src/main/java/com/ard/web/core/config/SwaggerConfig.java
@@ -24,136 +24,76 @@
/**
* Swagger2的接口配置
*
- * @author ruoyi
+ * @author ard
*/
@Configuration
-public class SwaggerConfig
-{
+public class SwaggerConfig {
+
/** 系统基础配置 */
@Autowired
private UavConfig uavConfig;
- /**
- * 创建API
- */
+ private Docket createApiDocket(ApiGroup apiGroup) {
+ return new Docket(DocumentationType.SWAGGER_2)
+ .enable(true)
+ .groupName(apiGroup.getGroupName())
+ .apiInfo(apiInfo(apiGroup.getTitle()))
+ .select()
+ .apis(requestHandler ->
+ requestHandler.declaringClass().getPackage().getName()
+ .startsWith(apiGroup.getPackagePath()) &&
+ requestHandler.isAnnotatedWith(io.swagger.annotations.ApiOperation.class)
+ )
+ .paths(PathSelectors.any())
+ .build()
+ .securitySchemes(securitySchemes())
+ .securityContexts(securityContexts());
+ }
+
@Bean
public Docket systemApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .enable(true)
- .groupName("系统接口") // 分组名
- .apiInfo(apiInfo("系统接口"))
- .select()
- // 扫描指定包下,但只扫描加了 @ApiOperation 注解的方法
- .apis(requestHandler ->
- requestHandler.declaringClass().getPackage().getName().startsWith("com.ard.web.controller.system") &&
- requestHandler.isAnnotatedWith(io.swagger.annotations.ApiOperation.class)
- )
- .paths(PathSelectors.any())
- .build()
- /* 设置安全模式,swagger可以设置访问token */
- .securitySchemes(securitySchemes())
- .securityContexts(securityContexts());
+ return createApiDocket(ApiGroup.SYSTEM);
}
+
@Bean
public Docket droneApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .enable(true)
- .groupName("无人机接口") // 分组名
- .apiInfo(apiInfo("无人机管理接口"))
- .select()
- // 扫描指定包下,但只扫描加了 @ApiOperation 注解的方法
- .apis(requestHandler ->
- requestHandler.declaringClass().getPackage().getName().startsWith("com.ard.web.controller.work") &&
- requestHandler.isAnnotatedWith(io.swagger.annotations.ApiOperation.class)
- )
- .paths(PathSelectors.any())
- .build()
- /* 设置安全模式,swagger可以设置访问token */
- .securitySchemes(securitySchemes())
- .securityContexts(securityContexts());
+ return createApiDocket(ApiGroup.DRONE);
}
+
@Bean
public Docket sampleApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .enable(true)
- .groupName("机场接口") // 分组名
- .apiInfo(apiInfo("机场管理接口"))
- .select()
- // 扫描指定包下,但只扫描加了 @ApiOperation 注解的方法
- .apis(requestHandler ->
- requestHandler.declaringClass().getPackage().getName().startsWith("com.ard.web.controller" +
- ".sample") &&
- requestHandler.isAnnotatedWith(io.swagger.annotations.ApiOperation.class)
- )
- .paths(PathSelectors.any())
- .build()
- /* 设置安全模式,swagger可以设置访问token */
- .securitySchemes(securitySchemes())
- .securityContexts(securityContexts());
+ return createApiDocket(ApiGroup.SAMPLE);
}
+
@Bean
public Docket mediaMTXApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .enable(true)
- .groupName("流媒体接口") // 分组名
- .apiInfo(apiInfo("流媒体管理接口"))
- .select()
- // 扫描指定包下,但只扫描加了 @ApiOperation 注解的方法
- .apis(requestHandler ->
- requestHandler.declaringClass().getPackage().getName().startsWith("com.ard.web.controller" +
- ".vtdu") &&
- requestHandler.isAnnotatedWith(io.swagger.annotations.ApiOperation.class)
- )
- .paths(PathSelectors.any())
- .build()
- /* 设置安全模式,swagger可以设置访问token */
- .securitySchemes(securitySchemes())
- .securityContexts(securityContexts());
+ return createApiDocket(ApiGroup.MEDIA_MTX);
}
+
@Bean
public Docket deviceApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .enable(true)
- .groupName("设备接口") // 分组名
- .apiInfo(apiInfo("设备管理接口"))
- .select()
- // 扫描指定包下,但只扫描加了 @ApiOperation 注解的方法
- .apis(requestHandler ->
- requestHandler.declaringClass().getPackage().getName().startsWith("com.ard.web.controller" +
- ".device") &&
- requestHandler.isAnnotatedWith(io.swagger.annotations.ApiOperation.class)
- )
- .paths(PathSelectors.any())
- .build()
- /* 设置安全模式,swagger可以设置访问token */
- .securitySchemes(securitySchemes())
- .securityContexts(securityContexts());
+ return createApiDocket(ApiGroup.DEVICE);
}
+
@Bean
public Docket dataApi() {
- return new Docket(DocumentationType.SWAGGER_2)
- .enable(true)
- .groupName("数据接口") // 分组名
- .apiInfo(apiInfo("数据管理接口"))
- .select()
- // 扫描指定包下,但只扫描加了 @ApiOperation 注解的方法
- .apis(requestHandler ->
- requestHandler.declaringClass().getPackage().getName().startsWith("com.ard.web.controller" +
- ".data") &&
- requestHandler.isAnnotatedWith(io.swagger.annotations.ApiOperation.class)
- )
- .paths(PathSelectors.any())
- .build()
- /* 设置安全模式,swagger可以设置访问token */
- .securitySchemes(securitySchemes())
- .securityContexts(securityContexts());
+ return createApiDocket(ApiGroup.DATA);
+ }
+
+ @Bean
+ public Docket storageApi() {
+ return createApiDocket(ApiGroup.STORAGE);
+ }
+
+ @Bean
+ public Docket routeApi() {
+ return createApiDocket(ApiGroup.ROUTE);
}
/**
* 安全模式,这里指定token通过Authorization头请求头传递
*/
- private List<SecurityScheme> securitySchemes()
- {
+ private List<SecurityScheme> securitySchemes() {
List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
return apiKeyList;
@@ -189,8 +129,7 @@
/**
* 添加摘要信息
*/
- private ApiInfo apiInfo()
- {
+ private ApiInfo apiInfo() {
// 用ApiInfoBuilder进行定制
return new ApiInfoBuilder()
// 设置标题
--
Gitblit v1.9.3