Middleware ist ein Mechanismus, der es ermöglicht, Code vor oder nach dem Hauptverarbeitungscode im Lebenszyklus einer HTTP-Anfrage auszuführen. Es kann als eine Art Haken im Framework verstanden werden, der alle Anfragen und Antworten abfängt.
Verwendung von Middleware in Iris
Sie können Middleware für Routen über die Use
-Methode in Iris registrieren.
package main
// Paket importieren
import "github.com/kataras/iris/v12"
func main() {
// Die Iris-Instanz definieren
app := iris.New()
// Die Middleware für die Gzip-Komprimierung verwenden
app.Use(iris.Compression)
// Routeneinstellungen
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Hallo <strong>%s</strong>!", "Welt")
})
// Auf Port lauschen
app.Listen(":8080")
}
Benutzerdefinierte Middleware in Iris
// Signatur der benutzerdefinierten Middleware-Funktion
func Logger() iris.Handler {
// Den Handler über Closure zurückgeben
return func(ctx iris.Context) {
t := time.Now()
// Parameter setzen
ctx.Values().Set("framework", "iris")
// Logik vor der Anfrage
ctx.Next()
// Logik nach der Anfrage
Latenzzeit := time.Since(t)
log.Print(Latenzzeit)
// Auf den gesendeten Status zugreifen
Status := ctx.GetStatusCode()
log.Println(Status)
}
}
func main() {
app := iris.New()
// Die benutzerdefinierte Middleware registrieren
app.Use(Logger())
app.Get("/test", func(ctx iris.Context) {
// Den von der Middleware gesetzten Parameter lesen
Framework := ctx.Values().GetString("framework")
// Es wird ausgegeben: "iris"
log.Println(Framework)
})
app.Listen(":8080")
}