Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Шрифт:
Интервал:
Закладка:
@{
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>
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})<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;
Модифицируйте код интерфейса, как показано ниже: