У меня вопрос по поводу чванства приложений с микросервисной архитектурой. Приложение создано с помощью JHipster. Поскольку у моего серверного приложения много конечных точек, загрузка этих конечных точек в swagger невозможна (все приложение шлюза застревает). Итак, моя идея - создать какие-то группы конечных точек на Swagger (фильтры). На данный момент элемент API из раскрывающегося списка в приложении шлюза открывает пользовательский интерфейс Swagger с двумя элементами: элементом по умолчанию (/ v2 / api-docs) и элементом службы (/ service / v2 / api-docs). Щелчок по второму элементу приводит к зависанию полного приложения шлюза, загружая все конечные точки. Итак, я попытался сделать несколько выпадающих элементов вместо одного элемента (service (service / v2 / api-docs)). Я следовал этому руководству: https://piotrminkowski.wordpress.com/2017/04/14/microservices-api-documentation-with-swagger2/ Итак, в моем приложении шлюза у меня есть GatewaySwaggerResourceProvider:
@Override
public List<SwaggerResource> get() {
List<SwaggerResource> resources = new ArrayList<>();
//Add the default swagger resource that correspond to the gateway's own swagger doc
resources.add(swaggerResource("default", "/v2/api-docs"));
//Add the registered microservices swagger docs as additional swagger resources
List<Route> routes = routeLocator.getRoutes();
routes.forEach(route -> {
resources.add(swaggerResource(route.getId(), route.getFullPath().replace("**", "v2/api-docs")));
});
return resources;
}
В моем основном классе шлюза я поместил:
@Bean
UiConfiguration uiConfig() {
return new UiConfiguration("validatorUrl", "list", "alpha", "schema",
UiConfiguration.Constants.DEFAULT_SUBMIT_METHODS, false, true, 60000L);
}
В основном классе моего приложения микросервиса (серверного приложения) я поместил Docket @Bean, который фильтрует только конечные точки из определенного пакета:
@Bean
public Docket api() throws IOException {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("product")
.select()
.apis(RequestHandlerSelectors.basePackage("kango.web.rest"))
.paths(PathSelectors.ant("/product-types/*"))
.build()
.apiInfo(apiInfo());
}
После этого я перезапустил оба приложения, и Swagger по-прежнему показывает два начальных элемента в раскрывающемся списке. Мне нужно иметь несколько элементов с похожими группами конечных точек.
Я потерял много времени и тщательно исследовал, прежде чем спросить, так что, пожалуйста, помогите мне ...