From 7987cd6d3d2aac73ec4f2f903062c41b0ddb16b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Tue, 26 Jul 2022 23:38:10 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E4=BD=BF=E7=94=A8=E6=9C=8D=E5=8A=A1=E5=90=8D=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E5=89=8D=E7=BC=80=E5=BD=93Path=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89Path?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/dev/application-common.yml | 4 ++++ .../doc/config/SwaggerAutoConfiguration.java | 18 ++++++++++++++++-- .../config/properties/SwaggerProperties.java | 7 +++++++ 3 files changed, 27 insertions(+), 2 deletions(-) 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; + /** *

* 文档的基础属性信息