From 226b062ef301b61260efac126e1db373ace85b87 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Fri, 16 Jan 2026 09:01:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
ard-admin/src/main/java/com/ard/web/core/config/SwaggerConfig.java | 93 ++++++++++++++++++++++++++++++++++------------
1 files changed, 68 insertions(+), 25 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..84da005 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,46 +24,83 @@
/**
* Swagger2的接口配置
*
- * @author ruoyi
+ * @author ard
*/
@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);
+ }
+
+ @Bean
+ public Docket inspectionApi() {
+ return createApiDocket(ApiGroup.INSPECTION);
}
/**
* 安全模式,这里指定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 +136,7 @@
/**
* 添加摘要信息
*/
- private ApiInfo apiInfo()
- {
+ private ApiInfo apiInfo() {
// 用ApiInfoBuilder进行定制
return new ApiInfoBuilder()
// 设置标题
@@ -113,4 +149,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