Читаем Язык программирования C#9 и платформа .NET5 полностью

public IEnumerable Get

{

  _logger.LogAppWarning("This is a test");

  throw new Exception("Test Exception");

  ...

}

Запустите приложение и испытайте метод с использованием Swagger. Результаты, отображенные в пользовательском интерфейсе Swagger должны соответствовать следующему выводу (трассировка стека приведена с сокращениями):

{

  "Error": "General Error.",

  "Message": "Test Exception",

  "StackTrace": "   at AutoLot.Api.Controllers.WeatherForecastController.Get in

D:\\Projects\\Books\\csharp9-wf\\Code\\New\\Chapter_30\\AutoLot.Api\\Controllers\\

WeatherForecastController.cs:line 31\r\n  "

}

<p id="AutBody_Root1433"><strong>Добавление поддержки запросов между источниками</strong></p>

Приложения API должны иметь политики, которые разрешают или запрещают взаимодействовать с ними клиентам, обращающимся из другого сервера. Такие типы запросов называются запросами между источниками (cross-origin requests — CORS). Хотя в этом нет необходимости при работе локально на своей машине для всего мира ASP.NET Core, поддержка CORS нужна фреймворкам JavaScript, которые желают взаимодействовать с вашим приложением API, даже когда они все вместе функционируют локально.

На заметку! Дополнительные сведения о поддержке CORS ищите в документации по ссылке https://docs.microsoft.com/ru-ru/aspnet/core/security/cors.

<p id="AutBody_Root1434"><strong>Создание политики CORS</strong></p>

Инфраструктура ASP.NET Core располагает развитой поддержкой конфигурирования CORS, включая методы для разрешения/запрещения заголовков, методов, источников, учетных данных и многого другого. В этом примере все будет оставлено максимально открытым.

Конфигурирование начинается с создания политики CORS и добавления ее в коллекцию служб. Политика имеет имя (оно будет использоваться в методе Configure), за которым следуют правила. Далее будет сознана политика по имени AllowAll, разрешающая все. Добавьте в метод ConfigureServices класса Startup следующий код:

services.AddCors(options =>

{

  options.AddPolicy("AllowAll", builder =>

  {

   builder

      .AllowAnyHeader

      .AllowAnyMethod

      .AllowAnyOrigin;

  });

});

<p id="AutBody_Root1435"><strong>Добавление политики CORS в конвейер обработки HTTP</strong></p>

Наконец, политику CORS необходимо добавить в конвейер обработки HTTP. Поместите между вызовами арр. UseRouting и арр.UseEndpoints в методе Configure класса Startup показанную ниже строку (выделенную полужирным):

public void Configure(

  IApplicationBuilder app,

  IWebHostEnvironment env,

  ApplicationDbContext context)

{

  ...

  // Включить маршрутизацию.

  app.UseRouting;

  // Добавить политику CORS.

  app.UseCors("AllowAll");

  // Включить проверки авторизации.

  app.UseAuthorization;

  ...

}

<p id="AutBody_Root1436"><strong>Резюме</strong></p>

В главе вы продолжили изучение ASP.NET Core. Сначала вы узнали о возвращении данных JSON из методов действий, после чего взглянули на атрибут ApiController и его влияние на контроллеры API. Затем вы обновили общую реализацию Swashbuckle, чтобы включить XML-документацию приложения и информацию из атрибутов методов действий.

Далее был построен базовый контроллер, содержащий большинство функциональности приложения. После этого в проект были добавлены производные контроллеры, специфичные для сущностей. В заключение был добавлен фильтр исключений уровня приложения и поддержка запросов между источниками.

В следующей главе вы завершите построение веб-приложения ASP.NET Core, т.е. AutoLot.Mvc.

<p id="AutBody_Root1437"><strong>Глава 31</strong></p><p><strong>Создание приложений MVC с помощью ASP.NET Core</strong></p>

В главе 29 была заложена основа ASP.NET Core, а в главе 30 вы построили службу REST. В этой главе вы будете создавать веб-приложение с использованием паттерна МУС. Все начинается с помещения "V" обратно в "МУС".

На заметку! Исходный код, рассматриваемый в этой главе, находится в папке Chapter_31 внутри хранилища GitHub для настоящей книги. Вы также можете продолжить работу с решением, начатым в главе 29 и обновленным в главе 30.

<p id="AutBody_Root1438"><strong>Введение в представления ASP.NET Core</strong></p>
Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT