доступа к данным напрямую. Еще один подход предусматривает использование службы
AutoLot.Api
, позволяя ей обрабатывать весь доступ к данным.
Обновление конфигурации приложения
Конечные точки приложения
AutoLot.Api
будут варьироваться на основе среды. Скажем, при разработке на вашей рабочей станции базовый URI выглядит как
https://localhost:5021
. В промежуточной среде им может быть
https://mytestserver.com
. Осведомленность о среде в сочетании с обновленной конфигурационной системой (представленной в главе 29) будут применяться для добавления разных значений.
Файл
appsettings.Development.json
добавит информацию о службе для локальной машины По мере того как код перемещается по разным средам, настройки будут обновляться в специфическом файле среды, чтобы соответствовать базовому URI и конечным точкам для этой среды. В рассматриваемом примере вы обновляете только настройки для среды
Development
. Откройте файл
appsettings.Development.json
и модифицируйте его следующим образом (изменения выделены полужирным):
На заметку! Удостоверьтесь, что номер порта соответствует вашей конфигурации для
AutoLot.Api
.
За счет использования конфигурационной системы ASP.NET Core и обновления файлов, специфичных для среды (например,
appsettings.staging.json
и
appsettings.production.json
), ваше приложение будет располагать надлежащими значениями без необходимости в изменении кода.
Создание
класса ApiServiceSettings
Настройки службы будут заполняться из настроек таким же способом, как и информация об автодилере. Создайте в проекте
AutoLot.Services
новый каталог по имени
ApiWrapper
и добавьте в него файл класса
ApiServiceSettings.cs
. Имена свойств класса должны совпадать с именами свойств в разделе
ApiServiceSettings
файла
appsettings.Development.json
. Код класса показан ниже:
namespace AutoLot.Services.ApiWrapper
{
public class ApiServiceSettings
{
public ApiServiceSettings { }
public string Uri { get; set; }
public string CarBaseUri { get; set; }
public string MakeBaseUri { get; set; }
}
}
Оболочка службы API
В версии ASP.NET Core 2.1 появился интерфейс
IHTTPClientFactory
, который позволяет конфигурировать строго типизированные классы для вызова внутри служб REST. Создание строго типизированного класса дает возможность инкапсулировать все обращения к API в одном месте. Это централизует взаимодействие со службой, конфигурацию клиента HTTP, обработку ошибок и т.д. Затем класс можно добавить в контейнер DI для дальнейшего применения в приложении. Контейнер DI и реализация