Swagger-UI, независимый от кода и сервера - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть требование, которое микросервис должен иметь для swagger-ui, и документация по интерфейсу Swagger не зависит от кода / сервера, потому что есть много микросервисов, и я хотел бы, чтобы все они были документированы в одном месте и должны работать в другой сервер. Кто-нибудь пробовал это, пожалуйста, помогите мне в этом.

1 Ответ

0 голосов
/ 15 ноября 2018

Вы можете объединить документацию по API нескольких служб, внедрив SwaggerResourcesProvider, а затем переопределить метод 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

Исходное сообщение: Документация по API Microservices с Swagger2

...