From e5f1d20407c39da4b6c218c9685867837532325f Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Sat, 18 Oct 2025 14:48:49 +0800
Subject: [PATCH] 1.优化API分组方法。 2.增加文件管理业务。 3.增加文件夹管理业务。 4.修改BUG查询盒子列表,没有状态信息BUG。 5.修改服务器名称。

---
 ard-admin/src/main/java/com/ard/web/core/config/SwaggerConfig.java |   84 ++++++++++++++++++++++++++++++------------
 1 files changed, 60 insertions(+), 24 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 650a1f9..8ff77a1 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
@@ -27,43 +27,73 @@
  * @author ruoyi
  */
 @Configuration
-public class SwaggerConfig
-{
+public class SwaggerConfig {
+
     /** 系统基础配置 */
     @Autowired
     private UavConfig uavConfig;
 
-    /**
-     * 创建API
-     */
-    @Bean
-    public Docket createRestApi()
-    {
+    private Docket createApiDocket(ApiGroup apiGroup) {
         return new Docket(DocumentationType.SWAGGER_2)
-                // 是否启用Swagger
                 .enable(true)
-                // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
-                .apiInfo(apiInfo())
-                // 设置哪些接口暴露给Swagger展示
+                .groupName(apiGroup.getGroupName())
+                .apiInfo(apiInfo(apiGroup.getTitle()))
                 .select()
-                // 扫描所有有注解的api,用这种方式更灵活
-                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
-                // 扫描指定包中的swagger注解
-                // .apis(RequestHandlerSelectors.basePackage("com.ard.project.tool.swagger"))
-                // 扫描所有 .apis(RequestHandlerSelectors.any())
+                .apis(requestHandler ->
+                        requestHandler.declaringClass().getPackage().getName()
+                                .startsWith(apiGroup.getPackagePath()) &&
+                                requestHandler.isAnnotatedWith(io.swagger.annotations.ApiOperation.class)
+                )
                 .paths(PathSelectors.any())
                 .build()
-                /* 设置安全模式,swagger可以设置访问token */
                 .securitySchemes(securitySchemes())
-                .securityContexts(securityContexts())
-                .pathMapping("/");
+                .securityContexts(securityContexts());
+    }
+
+    @Bean
+    public Docket systemApi() {
+        return createApiDocket(ApiGroup.SYSTEM);
+    }
+
+    @Bean
+    public Docket droneApi() {
+        return createApiDocket(ApiGroup.DRONE);
+    }
+
+    @Bean
+    public Docket sampleApi() {
+        return createApiDocket(ApiGroup.SAMPLE);
+    }
+
+    @Bean
+    public Docket mediaMTXApi() {
+        return createApiDocket(ApiGroup.MEDIA_MTX);
+    }
+
+    @Bean
+    public Docket deviceApi() {
+        return createApiDocket(ApiGroup.DEVICE);
+    }
+
+    @Bean
+    public Docket dataApi() {
+        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;
@@ -99,8 +129,7 @@
     /**
      * 添加摘要信息
      */
-    private ApiInfo apiInfo()
-    {
+    private ApiInfo apiInfo() {
         // 用ApiInfoBuilder进行定制
         return new ApiInfoBuilder()
                 // 设置标题
@@ -113,4 +142,11 @@
                 .version(uavConfig.getVersion())
                 .build();
     }
+    private ApiInfo apiInfo(String title) {
+        return new ApiInfoBuilder()
+                .title(title)
+                .description("API 文档")
+                .version("1.0")
+                .build();
+    }
 }

--
Gitblit v1.9.3