Как заставить Jhipster gateway REST запрашивать микросервис? - PullRequest
0 голосов
/ 12 января 2019

Чтобы узнать об удивительной среде JHipster, я пытаюсь реализовать простую архитектуру микросервиса jhipster, чтобы шлюз REST запрашивал микросервис, а микросервис запрашивал базу данных.

Сначала я создаю микросервисное приложение (внутренний порт 8081), микросервисный шлюз (внешний порт 8080) и клонирую реестр jhipster. Во-вторых, я импортирую один и тот же jdl и в микросервис, и в шлюз. Я реализовал компонент AppLoading для заполнения базы данных в бэкэнде.

Я уже пытался:

  • настроить SERVER_API_URL в webpack.commons.js с помощью внутреннего URL
  • измените "api /" на "backend /" в моем шлюзе / ** / *. Service.ts и backend / ** / web.rest. * Resource.java, но я получаю "Http error response для http://localhost:9000/backend/mois: 404 Не найдено "
  • Установить цель "http://localhost:8081" в моем proxy.conf.json

Мой код доступен на github:

Я запускаю их все (с помощью команды mvnw), и все выглядит нормально:

  • реестр знает бэкэнд и интерфейс
  • шлюз знает бэкэнд
  • База данных бэкэнда заполнена правильно

Но в шлюзе нет доступных внутренних данных. Шлюз связывается с портом 8080 базы данных owm h2 и не запрашивает REST для бэкенда, которому принадлежат мои данные!

Мои вопросы:

  • Как настроить шлюз, чтобы он запрашивал бэкэнд? Я немного сбит с толку, потому что все, что я видел, не должны ничего настраивать, чтобы все работало ...
  • Почему в моем шлюзе сгенерированы import-jdl java-файлы, когда этот бэкэнд должен их обрабатывать? Как заставить import-jdl генерировать только передние файлы?
  • Есть ли способ генерировать объекты шлюза на основе уже созданных внутренних объектов?

Я пытался предоставить всю необходимую информацию, но спросил, если что-то не хватает.

Большое спасибо: -)

1 Ответ

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

Вам необходимо указать имя microservice в JDL. В настоящее время вы создали объекты как в шлюзе, так и в микросервисе. Когда вы указываете имя микросервиса, шлюз будет генерировать только код внешнего интерфейса. Вот пример:

entity A
entity B

microservice * with backend

https://www.jhipster.tech/jdl/#microserviceoptions

...