Maison >développement back-end >Golang >Comment implémenter un middleware évolutif spécifique à une route avec 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 "/".
<code class="go">router := httprouter.New()</code>É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>Étape 2 : Créez des instances Negroni pour chaque route.
<code class="go">router.Handler("GET", "/login", loginHandler) router.Handler("GET", "/", indexHandler)</code>É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>É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!