【发布时间】:2023-03-16 23:30:01
【问题描述】:
我有一个要求,微服务应该对 swagger-ui 有要求,并且 Swagger UI 文档独立于代码/服务器,因为有很多微服务,我希望将它们都记录在同一个地方,并且应该在一个不同的服务器。 任何人都试过这个,请帮助我。
【问题讨论】:
我有一个要求,微服务应该对 swagger-ui 有要求,并且 Swagger UI 文档独立于代码/服务器,因为有很多微服务,我希望将它们都记录在同一个地方,并且应该在一个不同的服务器。 任何人都试过这个,请帮助我。
【问题讨论】:
您可以通过实现 SwaggerResourcesProvider 来聚合多个服务的 API 文档,然后覆盖 public List get() 方法。如果您使用的是 zuul,下面应该可以工作:
@Component
@Primary
@EnableAutoConfiguration
public class DocumentationController implements SwaggerResourcesProvider {
@Override
public List get() {
List resources = new ArrayList<>();
resources.add(swaggerResource("sample-service", "/api/sample/v2/api-docs", "2.0"));
return resources;
}
private SwaggerResource swaggerResource(String name, String location, String version) {
SwaggerResource swaggerResource = new SwaggerResource();
swaggerResource.setName(name);
swaggerResource.setLocation(location);
swaggerResource.setSwaggerVersion(version);
return swaggerResource;
}
}
网关路由配置如下所示:
zuul:
prefix: /api
routes:
account:
path: /sample/**
serviceId: sample-service
【讨论】: