Sobes.tech
Back to questions
Junior — Middle
67

Можете ли вы перечислить и описать собственные middleware, которые вы создали или использовали в своих проектах?

Answer from AI

sobes.tech AI

В проектах на C# с использованием ASP.NET Core я создавал собственные middleware для решения различных задач, например:

  • Логирование запросов и ответов: middleware перехватывает HTTP-запросы и ответы, записывая важную информацию (URL, метод, время выполнения) для мониторинга и отладки.

  • Обработка ошибок: middleware, который перехватывает исключения, возникающие в конвейере обработки запросов, и формирует единый формат ответа с ошибкой.

  • Аутентификация и авторизация: собственные middleware для проверки токенов или других методов аутентификации, если стандартные решения не подходят.

Пример простого middleware для логирования запросов:

public class RequestLoggingMiddleware
{
    private readonly RequestDelegate _next;

    public RequestLoggingMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        Console.WriteLine($"Request: {context.Request.Method} {context.Request.Path}");
        await _next(context);
        Console.WriteLine($"Response Status: {context.Response.StatusCode}");
    }
}

// Регистрация в Startup.cs
// app.UseMiddleware<RequestLoggingMiddleware>();