From b6f26b76874d732a48fddbbdc8cac91a491ee6bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9E=97?= <1049020282@qq.com> Date: Thu, 7 Nov 2024 18:10:26 +0800 Subject: [PATCH] =?UTF-8?q?gateway=20swagger-ui=E4=B8=8D=E5=8F=AF=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gateway/swagger/SwaggerProvider.java | 52 +++++++++++-------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/seqdata-cloud-gateway/src/main/java/cn/seqdata/gateway/swagger/SwaggerProvider.java b/seqdata-cloud-gateway/src/main/java/cn/seqdata/gateway/swagger/SwaggerProvider.java index e36a9a7..038fbf9 100644 --- a/seqdata-cloud-gateway/src/main/java/cn/seqdata/gateway/swagger/SwaggerProvider.java +++ b/seqdata-cloud-gateway/src/main/java/cn/seqdata/gateway/swagger/SwaggerProvider.java @@ -6,6 +6,7 @@ import java.util.Map; import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; +import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -14,8 +15,6 @@ import org.springframework.cloud.gateway.route.RouteDefinition; import org.springframework.cloud.gateway.route.RouteDefinitionLocator; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; - -import lombok.SneakyThrows; import springfox.documentation.swagger.web.SwaggerResource; import springfox.documentation.swagger.web.SwaggerResourcesProvider; @@ -28,6 +27,8 @@ import springfox.documentation.swagger.web.SwaggerResourcesProvider; public class SwaggerProvider implements SwaggerResourcesProvider { @Value("${spring.application.name:webapp}") private String serviceId; + @Value("${swagger.enabled:true}") + private boolean swaggerEnabled; private RouteDefinitionLocator locator; @@ -40,29 +41,34 @@ public class SwaggerProvider implements SwaggerResourcesProvider { @Override public List get() { return CompletableFuture.supplyAsync(() -> { - List swaggerResources = new ArrayList<>(); + List swaggerResources = new ArrayList<>(); + if(!swaggerEnabled) { + return swaggerResources; + } + + swaggerResources.add(swaggerResource("cps", "/v2/api-docs")); - locator.getRouteDefinitions() - .toStream() - //过滤掉网关本身 - .filter(route -> !StringUtils.equals(routeId(route), serviceId)) - .forEach(route -> route.getPredicates() - .stream() - .filter(predicateDefinition -> "Path".equals(predicateDefinition.getName())) - .findFirst() - .ifPresent(predicate -> { - String routeId = routeId(route); - Map args = predicate.getArgs(); - String pattern = args.get("pattern"); - String location = StringUtils.replace(pattern, "/**", "/v2/api-docs"); - if(StringUtils.isBlank(location)) { - return; - } - swaggerResources.add(swaggerResource(routeId, location)); - })); + locator.getRouteDefinitions() + .toStream() + //过滤掉网关本身 + .filter(route -> !StringUtils.equals(routeId(route), serviceId)) + .forEach(route -> route.getPredicates() + .stream() + .filter(predicateDefinition -> "Path".equals(predicateDefinition.getName())) + .findFirst() + .ifPresent(predicate -> { + String routeId = routeId(route); + Map args = predicate.getArgs(); + String pattern = args.get("pattern"); + String location = StringUtils.replace(pattern, "/**", "/v2/api-docs"); + if(StringUtils.isBlank(location)) { + return; + } + swaggerResources.add(swaggerResource(routeId, location)); + })); - return swaggerResources; - }) + return swaggerResources; + }) .get(); } -- Gitee