Sobes.tech
Junior — Middle

Wyjaśnij koncepcję middleware w ASP.NET Core i jak współdziała z obsługą żądań HTTP.

sobes.tech AI

Odpowiedź od AI

W ASP.NET Core middleware to komponenty, które obsługują żądania i odpowiedzi HTTP w łańcuchu przetwarzania. Każdy middleware otrzymuje żądanie, może wykonać pewne działania (np. uwierzytelnianie, logowanie, obsługa błędów), a następnie przekazuje kontrolę do następnego komponentu.

Middleware działa sekwencyjnie: żądanie przechodzi przez łańcuch middleware, a odpowiedź jest zwracana tą samą ścieżką. Pozwala to na elastyczne konfigurowanie obsługi żądań, dodawanie funkcji i kontrolowanie przepływu danych.

Przykład prostego middleware w ASP.NET Core:

public class SimpleMiddleware
{
    private readonly RequestDelegate _next;

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

    public async Task InvokeAsync(HttpContext context)
    {
        // Działania przed przekazaniem żądania
        Console.WriteLine("Nadchodzące żądanie");

        await _next(context); // Przekazanie żądania do następnego middleware

        // Działania po obsłudze żądania
        Console.WriteLine("Wychodząca odpowiedź");
    }
}

// W Startup.cs
app.UseMiddleware<SimpleMiddleware>();