Andriy Shyrokoryadov

.Net developer, data scientist

№11 Клиент в Asp.Net Core [#66].

Текст к видео "Клиент в Asp.Net Core" на канале YouTube

Привет всем! В предыдущих видео посвященных тематике ASP.NET Core мы много говорили об услугах. Было много примеров, которые показывали как можно при помощи запросов HTTP обращаться к услуге и как, используя определенную конфигурацию можно изменять способ обработки таких запросов. Большинство этих примеров опиралось на использование приложения Postman, однако в реальных условиях пользователи не будут обращаться к нашей услуге через Postman. Необходимо предложить нашим пользователям какой-то способ вызвать наши услуги программно. В свою очередь написанные нами услуги могут самостоятельно связываться с другими услугами для получения определенной информации или выполнения определенных заданий. То есть наши услуги могут быть клиентами других услуг.

Если мы посмотрим на архитектуру одного приложения, которую я уже показывал в видео на тему микро услуг, то мы заметим что некоторые услуги являются клиентами других услуг. Например общее API должно иметь возможность связываться с другими услугами. А те, другие услуги, имеют возможность связывать с Storage Service для получения или записи данных в базу данных. В любом из этих сценариев Postman нам не помощник. Он хорош для наших личных тестов, демонстрации примеров и проверки концепций. Однако в мире реальных приложений мы будем пользоваться чем то другим.

Компания Microsoft уже озаботилась решением это проблемы и нам доступна реализация интерфейса IHttpClientFactory. Как мы можем судить из названия данная фабрика служит для создания клиентов HTTP. Основной реализацией клиента HTTP в .Net является класс HttpClient. С помощью этого класса мы можем отправлять запросы к различным услугам программно. Реализацию интерфейса IHttpClientFactory можно внедрить в виде зависимости и получать клиентов HttpClient там где нам нужно в коде.

Как всегда в .Net у нас есть несколько возможностей для решения одной и той же задачи. Нашей задачей сегодня является создание клиента HTTP в приложении ASP.NET Core и отправка запросов при помощи этого клиента услуге, которая также написана в виде приложения ASP.NET Core. В практической части данного видео вы заметите, что мы будем использовать консольное приложение ASP.NET Core. Обратите внимание, что синтаксис этого приложения будет отличаться от подобных приложений в .Net Framework.

С какими способами создания клиента HTTP мы познакомимся?

  • первый пример – простейший пример с минимумом конфигурации
  • далее мы рассмотрим именованные клиенты
  • за именованными клиентами последует клиенты регистрируемые по типу
  • создаём клиента самостоятельно и зарегистрируем его в качестве зависимости
  • создадим клиента автоматически из интерфейса клиента используя библиотеку Refit
  • отправим пару запросов с использованием различных методов HTTP

Напоминаю, что примеры кода доступны в моем репозитории GitHub. Перейдем к практической части.

Пора заканчивать видео. Сегодня мы познакомились с программными способами вызова различных функциональностей нашей услуги. Сразу нужно оговориться что мне не знакомы лучшие практики использования ранее показанных примеров. Используйте то, что вам удобно. Если данное видео показалось вам полезным и интересным, буде благодарен за лайк и комментарий. Если вы еще не подписаны на мой канал, буду благодарен за подписку. Статистика канала показывает, что 60% моих зрителей это постоянные зрители, которые еще не подписаны на мой канал. Так что обращаюсь к этим 60% - подписка ничего не стоит, но помогает продвигать канал, а это означает для меня возможность выпуска новых видео. Благодарю за внимание и до новых встреч.

Пример кода из видео на GitHub

Для открытия файла проекта необходимо Visual Studio 2019.