Создание простых конечных точек с помощью метода расширения Run¶
Как мы видели, конвейер промежуточного ПО определяется в методе Configure класса Startup. Промежуточное ПО добавляется к объекту IApplicationBuilder, обычно при помощи методов расширения, например:
public void Configure(IApplicationBuilder app)
{
app.UseDeveloperExceptionPag();
app.UseStaticFiles();
}
Когда приложение получает запрос, он проходит через каждый компонент, любой из которых получает возможность изменить запрос или обработать, генерируя ответ. Если компонент генерирует ответ, то, по сути, прерывает выполнение конвейера; последующие компоненты конвейера не увидят запрос.
Для создания простого компонента, который всегда генерирует ответ, можно использовать метод расширения Run. Этот метод принимает лямбда-функцию, которая выполняется всякий раз, когда запрос достигает компонента, и всегда генерирует ответ.
Метод расширения Run предоставляет доступ к объекту HttpContext, который содержит все детали запроса в свойстве Request, и свойство Response, которое можно использовать для возврата ответа.
Рассмотрим, как создать простой компонент промежуточного ПО, который возвращает текущее время:
public void Configure(IApplicationBuilder app)
{
app.Run(async (HttpContext context) =>
{
context.Response.ContentType = "text/plain";
await context.Response.WriteAsync(DateTimeOffset.UtcNow.ToString());
});
app.UseStaticFiles(); //Этот компонент никогда не будет выполнен
}
Последнее обновление :
26 октября 2022 г.
Дата создания : 26 октября 2022 г.
Дата создания : 26 октября 2022 г.