From b8d62de41ff7e1e0549061308aa11f68cf881ed9 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 16 七月 2025 17:01:20 +0800
Subject: [PATCH] 修改所有的controller

---
 se-common/src/main/java/com/terra/common/config/SpringDocAutoConfiguration.java |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/se-common/src/main/java/com/terra/common/config/SpringDocAutoConfiguration.java b/se-common/src/main/java/com/terra/common/config/SpringDocAutoConfiguration.java
new file mode 100644
index 0000000..9be91a0
--- /dev/null
+++ b/se-common/src/main/java/com/terra/common/config/SpringDocAutoConfiguration.java
@@ -0,0 +1,64 @@
+package com.terra.common.config;
+
+import com.terra.common.entity.all.SpringDocProperties;
+import io.swagger.v3.oas.models.Components;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.info.Info;
+import io.swagger.v3.oas.models.security.SecurityRequirement;
+import io.swagger.v3.oas.models.security.SecurityScheme;
+import io.swagger.v3.oas.models.servers.Server;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Swagger 鏂囨。閰嶇疆
+ *
+ * @author admin
+ */
+@EnableConfigurationProperties(SpringDocProperties.class)
+@ConditionalOnProperty(name = "springdoc.api-docs.enabled", havingValue = "true", matchIfMissing = true)
+public class SpringDocAutoConfiguration
+{
+    @Bean
+    @ConditionalOnMissingBean(OpenAPI.class)
+    public OpenAPI openApi(SpringDocProperties properties)
+    {
+        return new OpenAPI().components(new Components()
+            // 璁剧疆璁よ瘉鐨勮姹傚ご
+            .addSecuritySchemes("apikey", securityScheme()))
+            .addSecurityItem(new SecurityRequirement().addList("apikey"))
+            .info(convertInfo(properties.getInfo()))
+            .servers(servers(properties.getGatewayUrl()));
+    }
+
+    public SecurityScheme securityScheme()
+    {
+        return new SecurityScheme().type(SecurityScheme.Type.APIKEY)
+            .name("Authorization")
+            .in(SecurityScheme.In.HEADER)
+            .scheme("Bearer");
+    }
+
+    private Info convertInfo(SpringDocProperties.InfoProperties infoProperties)
+    {
+        Info info = new Info();
+        info.setTitle(infoProperties.getTitle());
+        info.setDescription(infoProperties.getDescription());
+        info.setContact(infoProperties.getContact());
+        info.setLicense(infoProperties.getLicense());
+        info.setVersion(infoProperties.getVersion());
+        return info;
+    }
+
+    public List<Server> servers(String gatewayUrl)
+    {
+        List<Server> serverList = new ArrayList<>();
+        serverList.add(new Server().url(gatewayUrl));
+        return serverList;
+    }
+}

--
Gitblit v1.9.3