diff --git a/config/dev/application-common.yml b/config/dev/application-common.yml index 2882c5ff..178e39fb 100644 --- a/config/dev/application-common.yml +++ b/config/dev/application-common.yml @@ -257,6 +257,10 @@ swagger: type: APIKEY in: HEADER name: ${sa-token.token-name} + # 服务文档路径映射 参考 gateway router 配置 + # 默认为服务名去除前缀转换为path 此处填特殊的配置 + service-mapping: + ruoyi-gen: /code # seata配置 seata: diff --git a/ruoyi-common/ruoyi-common-doc/src/main/java/com/ruoyi/common/doc/config/SwaggerAutoConfiguration.java b/ruoyi-common/ruoyi-common-doc/src/main/java/com/ruoyi/common/doc/config/SwaggerAutoConfiguration.java index ce14d37c..6e71798e 100644 --- a/ruoyi-common/ruoyi-common-doc/src/main/java/com/ruoyi/common/doc/config/SwaggerAutoConfiguration.java +++ b/ruoyi-common/ruoyi-common-doc/src/main/java/com/ruoyi/common/doc/config/SwaggerAutoConfiguration.java @@ -23,6 +23,7 @@ import org.springframework.context.annotation.Bean; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; /** @@ -90,9 +91,22 @@ public class SwaggerAutoConfiguration { */ @Bean public OpenApiCustomiser openApiCustomiser() { + // 如果服务的自定义 Path 不存在 则采用默认去除前缀当 Path + Map serviceMapping = swaggerProperties.getServiceMapping(); + String appPath; + if (serviceMapping.containsKey(appName)) { + appPath = serviceMapping.get(appName); + } else { + appPath = "/" + StringUtils.substring(appName, appName.indexOf("-") + 1); + } + String contextPath = serverProperties.getServlet().getContextPath(); - String appPath = "/" + StringUtils.substring(appName, appName.indexOf("-") + 1); - String finalContextPath = StringUtils.isBlank(contextPath) || "/".equals(contextPath) ? appPath : appPath + contextPath; + String finalContextPath; + if (StringUtils.isBlank(contextPath) || "/".equals(contextPath)) { + finalContextPath = appPath; + } else { + finalContextPath = appPath + contextPath; + } // 对所有路径增加前置上下文路径 return openApi -> { Paths oldPaths = openApi.getPaths(); diff --git a/ruoyi-common/ruoyi-common-doc/src/main/java/com/ruoyi/common/doc/config/properties/SwaggerProperties.java b/ruoyi-common/ruoyi-common-doc/src/main/java/com/ruoyi/common/doc/config/properties/SwaggerProperties.java index 7e157c1f..53353f81 100644 --- a/ruoyi-common/ruoyi-common-doc/src/main/java/com/ruoyi/common/doc/config/properties/SwaggerProperties.java +++ b/ruoyi-common/ruoyi-common-doc/src/main/java/com/ruoyi/common/doc/config/properties/SwaggerProperties.java @@ -11,6 +11,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty; import java.util.List; +import java.util.Map; /** * swagger 配置属性 @@ -55,6 +56,12 @@ public class SwaggerProperties { @NestedConfigurationProperty private Components components = null; + /** + * 服务文档路径映射 参考 gateway router 配置 + * 默认为服务名去除前缀转换为path 此处填特殊的配置 + */ + private Map serviceMapping = null; + /** *

* 文档的基础属性信息