Maison > développement back-end > Golang > le corps du texte

Comment implémenter un middleware évolutif spécifique à une route avec Negroni ?

Mary-Kate Olsen
Libérer: 2024-10-24 08:18:30
original
803 Les gens l'ont consulté

How to Implement Scalable Route-Specific Middleware with Negroni?

Middlewares spécifiques à une route avec Negroni : une approche évolutive

Dans le développement Web utilisant Negroni et httprouter, l'obligation d'appliquer des middlewares de manière sélective à divers les itinéraires se posent fréquemment. Pour y parvenir, il est nécessaire de comprendre le concept de middleware spécifique à une route.

Lorsqu'il s'agit de plusieurs routes, appliquer des contrôles d'authentification à des routes spécifiques tout en en excluant d'autres présente un défi. Cela est particulièrement vrai lorsque vous utilisez Negroni, un puissant framework de gestion des requêtes. Dans ce contexte, nous explorerons une approche évolutive pour appliquer des middlewares de manière sélective aux routes.

Implémentation de middlewares spécifiques aux routes

Pour implémenter des middlewares spécifiques aux routes avec Negroni, nous peut tirer parti de la possibilité de créer plusieurs instances Negroni. Dans l'exemple fourni, nous avons un middleware d'authentification dans Authenticator.Get() que nous souhaitons appliquer uniquement à la route "/".

  1. Étape 1 : Créez une nouvelle instance de routeur pour chaque route.
<code class="go">router := httprouter.New()</code>
Copier après la connexion
Étape 1 : Créez une nouvelle instance de routeur pour chaque route.
<code class="go">loginHandler := negroni.New(negroni.HandlerFunc(loginHandler))
indexHandler := negroni.New(authenticator.Get(), negroni.HandlerFunc(indexHandler))</code>
Copier après la connexion
Étape 2 : Créez des instances Negroni pour chaque route.
<code class="go">router.Handler("GET", "/login", loginHandler)
router.Handler("GET", "/", indexHandler)</code>
Copier après la connexion
Étape 3 : Ajoutez la route au routeur avec le instance Negroni correspondante.
<code class="go">server := negroni.Classic()
server.UseHandler(router)
server.Use(sessions.Sessions("example-web-dev", cookiestore.New([]byte("some secret"))))</code>
Copier après la connexion
Étape 4 : Créer le serveur et utiliser le routeur comme gestionnaire.

Avec cette approche, nous appliquer efficacement le middleware d'authentification uniquement à la route "/". Pour obtenir l'évolutivité de plusieurs routes publiques et privées, créez simplement des instances Negroni distinctes et ajoutez-les au routeur en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!