From 9106fcfbcb6ec92ddf47f5a62672a8a8fdf5e53e Mon Sep 17 00:00:00 2001
From: jmxd <838425805@qq.com>
Date: Sat, 31 May 2025 08:32:39 +0800
Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9springdoc2.8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../magic-api-plugin-springdoc/pom.xml | 2 +-
.../MagicSpringDocConfiguration.java | 39 +++++++++++++++++--
2 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/magic-api-plugins/magic-api-plugin-springdoc/pom.xml b/magic-api-plugins/magic-api-plugin-springdoc/pom.xml
index 1b860998..ef2f60ee 100644
--- a/magic-api-plugins/magic-api-plugin-springdoc/pom.xml
+++ b/magic-api-plugins/magic-api-plugin-springdoc/pom.xml
@@ -13,7 +13,7 @@
magic-api-plugin-springdoc
magic-api-plugin-springdoc
- 2.0.4
+ 2.8.8
diff --git a/magic-api-plugins/magic-api-plugin-springdoc/src/main/java/org/ssssssss/magicapi/springdoc/MagicSpringDocConfiguration.java b/magic-api-plugins/magic-api-plugin-springdoc/src/main/java/org/ssssssss/magicapi/springdoc/MagicSpringDocConfiguration.java
index f370a02a..cac5d09f 100644
--- a/magic-api-plugins/magic-api-plugin-springdoc/src/main/java/org/ssssssss/magicapi/springdoc/MagicSpringDocConfiguration.java
+++ b/magic-api-plugins/magic-api-plugin-springdoc/src/main/java/org/ssssssss/magicapi/springdoc/MagicSpringDocConfiguration.java
@@ -1,11 +1,15 @@
package org.ssssssss.magicapi.springdoc;
+import jakarta.servlet.ServletContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springdoc.core.properties.AbstractSwaggerUiConfigProperties;
+import org.springdoc.core.properties.SpringDocConfigProperties;
import org.springdoc.core.properties.SwaggerUiConfigParameters;
import org.springdoc.core.properties.SwaggerUiConfigProperties;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Autowired;
+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;
@@ -23,9 +27,10 @@ import org.ssssssss.magicapi.springdoc.entity.SwaggerEntity;
import org.ssssssss.magicapi.springdoc.entity.SwaggerProvider;
import org.ssssssss.magicapi.utils.Mapping;
-import jakarta.servlet.ServletContext;
-
-import java.util.*;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
@Configuration
@EnableConfigurationProperties(SpringDocConfig.class)
@@ -62,6 +67,34 @@ public class MagicSpringDocConfiguration implements MagicPluginConfiguration {
return new Plugin("SpringDoc");
}
+ @Bean
+ @Primary
+ @ConditionalOnMissingBean(SwaggerUiConfigParameters.class)
+ public SwaggerUiConfigProperties magicSwaggerUiConfigProperties(SwaggerUiConfigProperties swaggerUiConfigProperties, SpringDocConfigProperties springDocConfigProperties){
+ Set urls = swaggerUiConfigProperties.getUrls();
+ if (urls == null){
+ urls = new HashSet<>();
+ AbstractSwaggerUiConfigProperties.SwaggerUrl url = new AbstractSwaggerUiConfigProperties.SwaggerUrl("default", springDocConfigProperties.getApiDocs().getPath(), null);
+ urls.add(url);
+ }
+ urls.add(new AbstractSwaggerUiConfigProperties.SwaggerUrl(springDocConfig.getGroupName(), servletContext.getContextPath() + springDocConfig.getLocation(), null){
+ @Override
+ public String getUrl() {
+ try {
+ if (!createdMapping){
+ createdMapping = true;
+ createSwaggerProvider(requestMagicDynamicRegistryObjectProvider, magicResourceService, servletContext);
+ }
+ } catch (Exception e) {
+ logger.error("注册springdoc接口失败", e);
+ }
+ return super.getUrl();
+ }
+ });
+ swaggerUiConfigProperties.setUrls(urls);
+ return swaggerUiConfigProperties;
+ }
+
@Bean
@Primary
@Lazy