Как централизовать документы swagger-ui в ресурс, доступный через единую конечную точку - PullRequest
0 голосов
/ 02 апреля 2019

Я установил приложение для начальной загрузки и хотел бы, чтобы пользовательский интерфейс Swagger отображал все мои документы на одной странице.

Для фона, приложение упаковано в контейнер и работает в кластере с несколькими развертываниями, организованными k8s. Существует служба входа, которая направляет правильное развертывание в зависимости от структуры входящего HTTP-запроса.

В каждом модуле имеется несколько контроллеров, настроенных с помощью Springfox.

@Configuration
@EnableSwagger2
public class Swagger
{
    @Bean
    public Docket api()
    {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}

Выше приведена стандартная страница пользовательского интерфейса с документом для каждой конечной точки. Как обеспечить централизованный swagger-интерфейс?

1 Ответ

0 голосов
/ 12 апреля 2019

Чтобы решить эту проблему, я использовал обнаружение службы kubernetes для регистрации своих клиентов, дополнительную информацию об обнаружении клиента k8s: https://cloud.spring.io/spring-cloud-static/spring-cloud-kubernetes/2.1.0.RC1/multi/multi__discoveryclient_for_kubernetes.html

Я также создал API службы шлюза с прокси-сервером zuul для запросаспецификации swagger, больше информации о zuul при весенней загрузке: https://cloud.spring.io/spring-cloud-netflix/multi/multi__router_and_filter_zuul.html

Наконец, я настроил свой входной сервис для перенаправления всех запросов swagger на API шлюза, который использует zuul для получения спецификаций swagger.

...