Файл Program.cs проекта ASP.NET Core Web API

Файл Program.cs – это главный файл нашего приложения с которого начинается абсолютно всё, что касается работы. В зависимости от того, какая версия платформы .NET выбрана при создании нового проекта, зависит содержимое этого файла.

Файл Program.cs в .NET 9

Создадим новое приложение ASP.NET Core Web API на основе контроллеров, используя .NET 9. В этом случае, файл Program.cs будет выглядеть следующим образом:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
builder.Services.AddOpenApi();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.MapOpenApi();
}

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run();

В файле Program.cs выполняется две важнейшие задачи, а именно, производится:

  1. добавление сервисов, используемых приложением;
  2. настройка конвейера обработки запросов.

То есть, условно, весь файл Program.cs можно разделить на две части

Добавление сервисов в приложение осуществляется после строки кода:

var builder = WebApplication.CreateBuilder(args);

и до строки

var app = builder.Build();

Контейнер зависимостей содержится в объекте класса WebApplicationBuilder. Так, сейчас на рисунке выше в наше приложение добавляется сервис для использования контроллеров, а также сервис для работы с документацией по API. Также, по умолчанию, в конвейер обработки запросов могут добавляться другие сервисы, например сервис ведения журналов, доступа к конфигурации приложения и так далее.

Любой запрос клиента API, после его обработки web-сервером, попадает в конвейер обработки запроса, который состоит из отдельных компонентов, которые называются компонентами middleware или «ПО промежуточного слоя». Конвейер обработки запросов настраивается после строки кода

var app = builder.Build();

до строки:

app.Run();

За настройку конвейера обработки запросов отвечает объект класса WebApplication. Этот же класс содержит свойства, позволяющие получить доступ к настройкам приложения. Опять же, наше приложение настраивает конвейер запросов для использования OpenApi (если среда выполнения имеет имя Development), а также встраивает в конвейер запроса компоненты middleware для авторизации пользователя и автоматического перенаправления на https.

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

Итого

В файле Program.cs выполняются две важные задачи — добавляются необходимые для работы приложения сервисы и настраивается конвейер обработки запросов. При этом, важнейшими, с этой точки зрения, классами приложения являются WebApplicationBuilder и WebApplication.

Подписаться
Уведомить о
guest
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии