Прежде всего, если вы не используете контейнеры, запустите вместе с оркестровкой (обе изначально поддерживаются в Visual Studio, при условии, что у вас действительно установлен Docker и т. Д.).Среди множества преимуществ вы можете ссылаться на свои сервисы через имя хоста, не беспокоясь о портах и разных местах для разных сред.
Что касается фактической связи.Здесь нет действительно волшебного решения.HttpClient
- это то, что вы используете, конечно, и, как правило, да, вы хотите иметь обертку для этого, чтобы абстрагироваться от низкоуровневых HTTP-коммуникаций, чтобы остальная часть вашего кода могла просто вызывать простые методы для этой обертки.
Если вы не используете IHttpClientFactory
, начните.Если у вас уже есть класс-оболочка, вы на полпути, и благодаря этому вы не только получаете эффективное управление HttpMessageHandler
s, поэтому вы не исчерпываете пул соединений вашего сервера, но вы также можете использовать интеграцию Polly дляобрабатывать временные ошибки HTTP и даже выполнять политики повторных попыток, автоматические выключатели и т. д. для ваших микросервисных подключений.
Наконец, есть библиотека Refit , которая может сделать все немного проще.Я нахожу его более полезным с огромными сторонними API, такими как Facebook, Google и т. Д.Поскольку микросервисы должны быть простыми по своему дизайну, вы, вероятно, не будете экономить много кода, просто имея собственный класс-обертку.Независимо от того, как это работает, вы определяете интерфейс, который представляет API, а затем Refit использует его для фактического выполнения соответствующих запросов.Это что-то вроде класса-обертки бесплатно, но вам все равно нужно создать интерфейс.