Sobes.tech
Middle+

Aké metódy existujú na prácu s životným cyklom požiadavky v ASP.NET Core?

sobes.tech AI

Odpoveď od AI

V ASP.NET Core, životný cyklus požiadavky možno kontrolovať a spravovať rôznymi metódami:

  • Middleware: Ide o hlavný spôsob spracovania požiadaviek. Middleware tvorí reťazec, ktorým prechádza každá požiadavka. Každá zložka Middleware vykonáva určitú úlohu (autentifikácia, logovanie, smerovanie atď.) alebo odovzdáva požiadavku nasledujúcej zložke.

    // Príklad jednoduchého Middleware
    public class MyCustomMiddleware
    {
        private readonly RequestDelegate _next;
    
        public MyCustomMiddleware(RequestDelegate next)
        {
            _next = next;
        }
    
        public async Task InvokeAsync(HttpContext context)
        {
            // Logika pred spracovaním požiadavky
            Console.WriteLine("Pred požiadavkou...");
    
            await _next(context); // Prenos riadenia na ďalší Middleware
    
            // Logika po spracovaní požiadavky
            Console.WriteLine("Po požiadavke...");
        }
    }
    
    // Registrácia Middleware v Startup.Configure
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // ... ďalšie Middleware
        app.UseMiddleware<MyCustomMiddleware>();
        // ...
    }
    
  • Filtre v MVC/Razor Pages: Filtre umožňujú vykonávať logiku na rôznych etapách spracovania Action (pred, po vykonaní Action, pred/po renderovaní výsledku).

    • Action filtre: Pre logiku pred/po vykonaní Action-metódy.
    • Result filtre: Pre logiku pred/po vykonaní Result (napríklad ViewResult, JsonResult).
    • Exception filtre: Pre spracovanie neopracovaných výnimiek.
    • Resource filtre: Pre logiku na ranom štádiu reťazca MVC, pred Model Binding.
    • Authorization filtre: Pre autorizáciu.
  • Model Binding: Proces, ktorý zodpovedá HTTP požiadavke parametrom Action-metódy. Môžete vytvoriť vlastné Model Binders.

  • Routing (Smerovanie): Zodpovedá URL požiadavke s koncovým bodom (endpoint), zvyčajne s Action-metódou kontroléra alebo Razor Page.

  • Request Handlers (Spracovatelia požiadaviek): V minimálnych API alebo s použitím Endpoint Routing môžete explicitne definovať spracovateľov pre konkrétne trasy.

    // Príklad spracovateľa v minimálnom API
    app.MapGet("/hello", () => "Hello World!");
    
  • Startup.ConfigureServices: Konfigurácia služieb a závislostí dostupných počas celého životného cyklu aplikácie a požiadavky.

  • Startup.Configure: Definovanie reťazca Middleware.

Tieto metódy umožňujú zachytávať, upravovať a spracovávať požiadavky na rôznych etapách, čím poskytujú flexibilnú kontrolu nad celým procesom.