API-шлюз (Zuul) объединяет два микро-сервис ответа - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть два микро-сервиса, пользовательский микро-сервис и заказ микро-сервиса.

Пользовательский микро-сервис возвращает сведения о пользователе, а микро-сервис заказа возвращает данные о заказе для пользователя.

http://localhost:8080/microservice1/getuser

{ "ID": "100", "имя": "тест"}

http://localhost:8081/microservice2/getorders

{ "USERID": "100", "заказы": { "OrderID": "5001", "PRODUCTNAME": "Мобильный телефон"}}

Я использую Spring cloud Zuul в качестве шлюза API, который направляет запрос к каждому микро сервису.

http://localhost:9090/api/microservice1/getuser

http://localhost:9090/api/microservice2/getorders

Теперь из интерфейса мне нужно вызвать две конечные точки

Есть ли у них какой-либо способ объединить отклик обоих микро сервисов, например { "ID": "100", "имя": "Тест", "заказы": { "OrderID": "5001", "PRODUCTNAME": "Мобильный телефон"}}

Так что клиенту нужно вызывать только одну конечную точку http://localhost:9090/api/getdetail

как мы можем достичь этого на уровне API Gateway?

1 Ответ

1 голос
/ 23 апреля 2019

Zuul не следует использовать для агрегирования ответов, вы можете создать микросервисную службу оркестровки и внутренне с помощью restTemplate получить все ответы и агрегировать в соответствии с необходимостью.

Сохранять Zuul как не имеющее состояния, шлюз не должен иметь никакой логики или состояния с состоянием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...