如何解决使用格式为***-service的服务名称打开Api swagger文档
我有一个java spring boot服务网格服务。 我正在使用开放式API来获取庞大的文档。 当我运行Spring Cloud Gateway并访问http:// localhost:{my-port} /swagger-ui.html时,它可以正常工作并加载在“ Explore”标题栏中提到/ v3 / api-docs的swagger ui。 。 另外,当我像/ v3 / api-docs / my-service这样将服务名称添加到url时,效果很好。
但是,我想尝试一个下拉服务列表,而不是手动为每个服务附加服务名称。我已经在网关中尝试了此分组代码:
@Bean
fun apis(): List<GroupedOpenApi> {
val groups = ArrayList<GroupedOpenApi>()
val definitions = locator!!.routeDefinitions.collectList().block()
definitions!!.stream().filter { routeDefinition -> routeDefinition.id.matches(".*-service".toRegex()) }.forEach { routeDefinition ->
val name = routeDefinition.id.replace("-service".toRegex(),"")
GroupedOpenApi.builder().pathsToMatch("/$name/**").setGroup(name).build()
}
return groups
}
现在,在此之后,当我访问http:// localhost:{my-port} /swagger-ui.html时,它显示了删除了“ -service”的所有服务的下拉列表。但是选择之后,这些文档不会显示。
尽管,如果我使用http:// localhost:{my-port} / v3 / api-docs / my-service在单独的选项卡中访问它,它将向我显示所有路径的json并可以正常工作。只是不会在招摇的用户界面中加载。
以下是服务和openapi之一的网关路由:
- id: my-service
uri: lb://my-service
predicates:
- Path=/api/v1/my/**
filters:
- name: CircuitBreaker
args:
name: my-service
fallbackuri: forward:/myServiceFallBack
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。