API网关不聚合微服务swagger docsSpring Boot

eivgtgni  于 2022-11-06  发布在  Spring
关注(0)|答案(1)|浏览(342)

Pom.xml:

  1. <dependency>
  2. <groupId>io.springfox</groupId>
  3. <artifactId>springfox-boot-starter</artifactId>
  4. <version>3.0.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springdoc</groupId>
  8. <artifactId>springdoc-openapi-ui</artifactId>
  9. <version>1.6.7</version>
  10. </dependency>

SwaggerConfig.java:

  1. @Configuration
  2. @RequiredArgsConstructor
  3. public class SwaggerConfig {
  4. private final RouteDefinitionLocator locator;
  5. @Bean
  6. public List<GroupedOpenApi> apis() {
  7. List<GroupedOpenApi> groups = new ArrayList<>();
  8. List<RouteDefinition> definitions = locator.getRouteDefinitions().collectList().block();
  9. definitions.stream().filter(routeDefinition -> routeDefinition.getId().matches(".*-service")).forEach(routeDefinition -> {
  10. String name = routeDefinition.getId().replaceAll("-service", "");
  11. GroupedOpenApi api = GroupedOpenApi.builder().pathsToMatch("/" + name + "/**").group(name).build();
  12. groups.add(api);
  13. });
  14. return groups;
  15. }
  16. }

application.yml:

  1. gateway:
  2. discovery:
  3. locator:
  4. enabled: true
  5. lower-case-service-id: true
  6. routes:
  7. - id: swagger
  8. uri: http://localhost:${server.port}
  9. predicates:
  10. - Path=/v3/api-docs/**
  11. filters:
  12. - RewritePath=/v3/api-docs/(?<path>.*), /$\{path}/v3/api-docs
  13. - id: test-service
  14. uri: lb://test-service
  15. predicates:
  16. - Path=/testservice/**
  17. filters:
  18. - RewritePath=/testservice/(?<path>.*), /$\{path}

Api gateway在discovery-server的帮助下看到了test-service。当我输入我的gateway服务器的swagger-ui时,在“Select a definition”选项卡中,我只看到了“default”定义,而没有看到我真正想要的test-service定义。我已经使用了这些教程:

  1. https://piotrminkowski.com/2020/02/20/microservices-api-documentation-with-springdoc-openapi/
  2. https://dgempiuc.medium.com/api-gateway-swagger-composition-e9416398ca47
    Screenshot:
mm5n2pyu

mm5n2pyu1#

您可以在yaml文件springdoc中添加此配置:api-docs:已启用:真正的霸气-ui:配置URL:v3/api-docs/swagger-config网址:/v3/api-docs网址:- 名称:测试URL:/v3/api-docs/测试

相关问题