У меня есть приложение nextjs (поддерживается командой «a»), которое на 100% SSR, и мне нужно интегрировать в него некоторые данные, поступающие с удаленного микросервиса. Ради обсуждения, скажем, я из команды «b» и поддерживаю этот микросервис
Этот микросервис получит некоторую информацию от приложения и ответит другими данными, которые должны быть разработаны до того, как они будут представлены приложением nextjs.
Первый подход, о котором я подумал, это написать клиент для микросервиса и поместить в приложение nextjs логику для вызова этого клиента (модуль npm), передать данные в микро и обработать ответ, чтобы обслужить "результат". Все в функции getInitialProps()
или даже раньше, в определении экспресс-маршрутизации в качестве промежуточного программного обеспечения.
Этот подход не работает : я не хочу связывать приложение и микро слишком много, и я не могу взять на себя разработку приложения nextjs (я могу делать небольшие PR , но не очень), поскольку он принадлежит другой команде.
Мы пытаемся использовать DDD, и приложение nextjs и микросервис явно находятся в 2 разных доменах.
Каков наилучший подход к разделению вещей?
Идеи, которые я придумал:
Я могу написать компонент реагирования в виде модуля npm и поместить туда всю логику, чтобы просто включить компонент реагирования в приложение nextjs, но как я могу заставить его работать с SSR?
Я могу написать третье микро (или приложение-узел), которое будет предоставлять html приложению nextjs и заботиться о вызове микро, предоставляющего приложение
или что еще?