Первая конечная точка отдыха API не указана в разделе API jhipster-gateway (swagger-ui) - PullRequest
0 голосов
/ 13 января 2019

Использование jhipster 5.7.2

Я создал api-шлюз и две микро-службы. В первом я создал сущность, и она отлично работает за шлюзом. Шлюз отображает конечные точки API для сгенерированного объекта.

Я сгенерировал второй микро-сервис, но на этот раз у меня уже был определен API в файле yml, поэтому я выбрал «API-first». Мой API был определен с использованием Open-API 3. Я успешно сгенерировал код для моего API, используя инструкции там , и протестировал непосредственный вызов моей конечной точки микросервиса с помощью curl: в этот момент он работал как положено.

Проблема: когда я ставлю этот микро-сервис за шлюз, шлюз не видит API. Когда я захожу в меню API, мой микро-сервис отображается в раскрывающемся списке, но когда я выбираю его, он не показывает конечных точек.

Одна странная вещь, которую я обнаружил при поиске, заключается в том, что когда я вызываю следующий URL-адрес непосредственно в моем микро-сервисе: http://localhost:8082/v2/api-docs (как указано на «приветственной странице» микро-сервиса), я получаю:

{"swagger":"2.0","info":{"description":"my micro-service API documentation","version":"0.0.1","title":"api-first micro-service API","contact":{},"license":{}},"host":"localhost:8082","basePath":"/"}

Там написано «swagger 2.0», когда мой файл yml объявил openapi 3.0.1. Я искал и нашел эту проблему , в которой говорится:

Swagger UI используется очень старая версия (2.2.10), которая не обеспечивает поддержка Open API

Хотя проблема была в openapi, поэтому я переписал файл yml на swagger 2.0, и, наконец, у меня возникла та же проблема: API-интерфейс микросервиса работает, но, похоже, не виден шлюзу.

Я начинаю удивляться, если это проблема только на моей стороне.

1 Ответ

0 голосов
/ 15 января 2019

По умолчанию JHipster настраивает Swagger для отображения только конечных точек API, начиная с api. Это настроено в application.yml, измените default-include-pattern, чтобы включить другие пути. Например, чтобы включить конечные точки, начинающиеся с /api/ или /expires/, вы можете использовать следующее:

swagger:
    default-include-pattern: /(api|expires)/.*
...