@{
ViewData["Title"] = "Home Page";
}
<div class="text-center">
<h1 class="display-4">Welcome to @Model.DealerName</h1>
<p class="lead">Located in @Model.City, @Model.State</p>
</div>
На заметку! За дополнительными сведениями о шаблоне параметров в ASP.NET Core обращайтесь в документацию по ссылке
https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/configuration/options
.
Создание оболочки службы
Вплоть до этого момента в приложении
AutoLot.Mvc
применялся уровень доступа к данным напрямую. Еще один подход предусматривает использование службы
AutoLot.Api
, позволяя ей обрабатывать весь доступ к данным.
Обновление конфигурации приложения
Конечные точки приложения
AutoLot.Api
будут варьироваться на основе среды. Скажем, при разработке на вашей рабочей станции базовый URI выглядит как
https://localhost:5021
. В промежуточной среде им может быть
https://mytestserver.com
. Осведомленность о среде в сочетании с обновленной конфигурационной системой (представленной в главе 29) будут применяться для добавления разных значений.
Файл
appsettings.Development.json
добавит информацию о службе для локальной машины По мере того как код перемещается по разным средам, настройки будут обновляться в специфическом файле среды, чтобы соответствовать базовому URI и конечным точкам для этой среды. В рассматриваемом примере вы обновляете только настройки для среды
Development
. Откройте файл
appsettings.Development.json
и модифицируйте его следующим образом (изменения выделены полужирным):
{
"Logging": {
"MSSqlServer": {
"schema": "Logging",
"tableName": "SeriLogs",
"restrictedToMinimumLevel": "Warning"
}
},
"RebuildDataBase": false,
"ApplicationName": "AutoLot.Mvc - Dev",
"ConnectionStrings": {
"AutoLot": "Server=.,5433;Database=AutoLot;User ID=sa;Password=P@ssw0rd;"
},
"ApiServiceSettings": {
<b> "Uri": "https://localhost:5021/",</b>
<b> "CarBaseUri": "api/Cars",</b>
<b> "MakeBaseUri": "api/Makes"</b>
<b> }</b>
}
На заметку! Удостоверьтесь, что номер порта соответствует вашей конфигурации для
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 и реализация
IHTTPClientFactory
обрабатывают создание и освобождение
HTTPClient
.
Интерфейс IApiServiceWrapper
Интерфейс оболочки службы
AutoLot
содержит методы для обращения к службе
AutoLot.Api
. Создайте в каталоге
ApiWrapper
новый файл интерфейса
IApiServiceWrapper.cs
и приведите операторы
using
к следующему виду:
using System.Collections.Generic;
using System.Threading.Tasks;
using AutoLot.Models.Entities;
Модифицируйте код интерфейса, как показано ниже: