【问题标题】:Swagger-UI independent of code and serverSwagger-UI 独立于代码和服务器
【发布时间】:2023-03-16 23:30:01
【问题描述】:

我有一个要求,微服务应该对 swagger-ui 有要求,并且 Swagger UI 文档独立于代码/服务器,因为有很多微服务,我希望将它们都记录在同一个地方,并且应该在一个不同的服务器。 任何人都试过这个,请帮助我。

【问题讨论】:

标签: spring-boot swagger-ui


【解决方案1】:

您可以通过实现 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

原帖:Microservices API Documentation with Swagger2

【讨论】:

  • 感谢您的回复。我想知道,有没有机会将 swagger 代码从微服务中分离出来。在这段代码中,sn -p swagger 代码也集成了微服务。这是否可以通过编写 swagger json/yml 文件来实现。如果你请告诉我
  • 你可以编写你的自定义 spring-boot-starter 模块并在那里定义这个 bean。然后你只需要在你的微服务中添加这个依赖项。
  • 因为我是新来的 swagger,你能不能给我一个样本来做 yml 文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 2021-06-05
相关资源
最近更新 更多