Micronaut -> Объединить результаты 2 вызовов Asyn c HttpClient - PullRequest
0 голосов
/ 02 мая 2020

Я экспериментировал с различными функциями Micronaut. У меня есть пара вопросов.

1) У меня есть 2 асинхронных вызова различных API. Как мне объединить результаты двух API, как мы это делаем в Rx Java Observable.zip?

2) Я использую декларативные клиенты для подключения к API. Как мне поймать исключения в таком сценарии ios? В Netflix Feign Client мы используем FallBack Factory. Как мне сделать то же самое в микронавтах.

1 Ответ

0 голосов
/ 11 мая 2020

Одним из решений может быть -

Если оба API могут быть вызваны параллельно и являются эксклюзивными, использование может использовать функцию Java 9 «Завершаемое будущее» и объединять записи, как только результаты станут доступны.

Однако это чистые java API-интерфейсы, которые не имеют большого отношения к инфраструктуре микронавтов.

Что касается использования декларативного клиента микронавтов, у вас может быть возможность перехватывать HttpClientException.

Если вам нужна дополнительная классификация для сбоев вашего API, вы можете использовать HttpClientResponseException и аннотировать ваш декларативный клиент с правильным телом ответа об ошибке из API, используя поле errorType.

Как отобразить errorType с помощью аннотации клиента Micronaut

...