From 1c935819dbeb45184be7561714d8cbb567dcfb8b Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期二, 26 七月 2022 23:43:01 +0800
Subject: [PATCH] update 优化 生成接口路径 支持服务自定义 contextPath 路径
---
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
index 6f7a8c8..204195b 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java
@@ -1,18 +1,22 @@
package com.ruoyi.framework.config;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.config.properties.SwaggerProperties;
import com.ruoyi.framework.handler.OpenApiHandler;
import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.oas.models.Paths;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import lombok.RequiredArgsConstructor;
import org.springdoc.core.*;
import org.springdoc.core.customizers.OpenApiBuilderCustomizer;
+import org.springdoc.core.customizers.OpenApiCustomiser;
import org.springdoc.core.customizers.ServerBaseUrlCustomizer;
import org.springdoc.core.providers.JavadocProvider;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -32,6 +36,7 @@
public class SwaggerConfig {
private final SwaggerProperties swaggerProperties;
+ private final ServerProperties serverProperties;
@Bean
@ConditionalOnMissingBean(OpenAPI.class)
@@ -75,4 +80,25 @@
return new OpenApiHandler(openAPI, securityParser, springDocConfigProperties, propertyResolverUtils, openApiBuilderCustomisers, serverBaseUrlCustomisers, javadocProvider);
}
+ /**
+ * 瀵瑰凡缁忕敓鎴愬ソ鐨� OpenApi 杩涜鑷畾涔夋搷浣�
+ */
+ @Bean
+ public OpenApiCustomiser openApiCustomiser() {
+ String contextPath = serverProperties.getServlet().getContextPath();
+ String finalContextPath;
+ if (StringUtils.isBlank(contextPath) || "/".equals(contextPath)) {
+ finalContextPath = "";
+ } else {
+ finalContextPath = contextPath;
+ }
+ // 瀵规墍鏈夎矾寰勫鍔犲墠缃笂涓嬫枃璺緞
+ return openApi -> {
+ Paths oldPaths = openApi.getPaths();
+ Paths newPaths = new Paths();
+ oldPaths.forEach((k,v) -> newPaths.addPathItem(finalContextPath + k, v));
+ openApi.setPaths(newPaths);
+ };
+ }
+
}
--
Gitblit v1.9.3