Routenspezifische Middlewares mit Negroni: Ein skalierbarer Ansatz
Bei der Webentwicklung mit Negroni und httprouter besteht die Anforderung, Middlewares selektiv auf verschiedene anzuwenden Routen kommt häufig vor. Um dies zu erreichen, ist es notwendig, das Konzept der routenspezifischen Middleware zu verstehen.
Beim Umgang mit mehreren Routen stellt die Anwendung von Authentifizierungsprüfungen auf bestimmte Routen und der Ausschluss anderer Routen eine Herausforderung dar. Dies gilt insbesondere bei der Verwendung von Negroni, einem leistungsstarken Framework zur Anforderungsbearbeitung. In diesem Zusammenhang werden wir einen skalierbaren Ansatz zur selektiven Anwendung von Middlewares auf Routen untersuchen.
Implementierung routenspezifischer Middlewares
Um routenspezifische Middlewares mit Negroni zu implementieren, haben wir kann die Möglichkeit nutzen, mehrere Negroni-Instanzen zu erstellen. Im bereitgestellten Beispiel verfügen wir über eine Authentifizierungs-Middleware in Authenticator.Get(), die wir nur auf die Route „/“ anwenden möchten.
<code class="go">router := httprouter.New()</code>
<code class="go">loginHandler := negroni.New(negroni.HandlerFunc(loginHandler)) indexHandler := negroni.New(authenticator.Get(), negroni.HandlerFunc(indexHandler))</code>
<code class="go">router.Handler("GET", "/login", loginHandler) router.Handler("GET", "/", indexHandler)</code>
<code class="go">server := negroni.Classic() server.UseHandler(router) server.Use(sessions.Sessions("example-web-dev", cookiestore.New([]byte("some secret"))))</code>
Mit diesem Ansatz können wir Wenden Sie die Authentifizierungs-Middleware effektiv nur auf die Route „/“ an. Um Skalierbarkeit für mehrere öffentliche und private Routen zu erreichen, erstellen Sie einfach separate Negroni-Instanzen und fügen Sie diese entsprechend zum Router hinzu.
Das obige ist der detaillierte Inhalt vonWie implementiert man mit Negroni skalierbare routenspezifische Middleware?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!