.net 6 Middleware Example

4 min read Jun 03, 2024
.net 6 Middleware Example

Démonstration du Middleware dans .NET 6

Le middleware est un composant crucial dans l'architecture ASP.NET Core qui permet d'intercepter les requêtes HTTP entrantes et les réponses sortantes avant qu'elles n'atteignent le point de terminaison final. Il offre un moyen flexible d'ajouter des fonctionnalités transversales à votre application, telles que l'authentification, la journalisation, la mise en cache et la gestion des exceptions.

Qu'est-ce que le Middleware ?

Le middleware est une classe qui implémente l'interface IMiddleware ou utilise le modèle de délégué RequestDelegate. Cette classe possède une méthode Invoke qui prend deux arguments :

  • HttpContext: Contient des informations sur la requête HTTP entrante, y compris l'en-tête, le corps et l'itinéraire.
  • RequestDelegate: Un délégué qui représente le middleware suivant dans la chaîne.

Création d'un Middleware simple

Créons un exemple de middleware qui ajoute un en-tête personnalisé à chaque réponse :

public class CustomHeaderMiddleware
{
    private readonly RequestDelegate _next;

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

    public async Task InvokeAsync(HttpContext context)
    {
        // Ajouter un en-tête personnalisé
        context.Response.Headers.Add("X-Custom-Header", "Middleware Example");

        // Passer la requête au middleware suivant
        await _next(context);
    }
}

Dans cet exemple, le middleware CustomHeaderMiddleware ajoute l'en-tête X-Custom-Header avec la valeur "Middleware Example" à toutes les réponses.

Utilisation du Middleware

Le middleware est enregistré dans la méthode Configure de votre classe Startup. Vous pouvez utiliser l'extension Use pour ajouter le middleware à la chaîne :

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...
    
    app.UseMiddleware();

    // ...
}

Exemple Complet

Voici un exemple complet d'une application ASP.NET Core avec un middleware personnalisé :

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace MiddlewareExample
{
    public class Startup
    {
        // ...

        public void ConfigureServices(IServiceCollection services)
        {
            // ...
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            // ...

            // Utiliser le middleware personnalisé
            app.UseMiddleware();

            // ...
        }
    }

    // Middleware personnalisé
    public class CustomHeaderMiddleware
    {
        // ... (même code que précédemment)
    }
}

Conclusion

Le middleware est un élément essentiel de l'architecture ASP.NET Core qui vous permet d'ajouter des fonctionnalités transversales à vos applications. Il offre un moyen flexible et efficace pour gérer des tâches courantes telles que l'authentification, la journalisation et la mise en cache. En utilisant le middleware, vous pouvez maintenir votre code clair et modulaire, tout en améliorant les performances et la sécurité de votre application.

Related Post