Il middleware è un meccanismo che consente al codice di essere eseguito prima o dopo il codice di gestione principale nel ciclo di vita di una richiesta HTTP. Può essere inteso come un'ancoraggio nel framework che intercetta tutte le richieste e le risposte.
Utilizzo del middleware in iris
È possibile registrare il middleware alle route attraverso il metodo Use
in iris.
package main
// Importa il pacchetto
import "github.com/kataras/iris/v12"
func main() {
// Definisci l'istanza di iris
app := iris.New()
// Usa il middleware di compressione gzip
app.Use(iris.Compression)
// Impostazioni della route
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Ciao <strong>%s</strong>!", "Mondo")
})
// In ascolto sulla porta
app.Listen(":8080")
}
Middleware personalizzato in iris
// Firma della funzione middleware personalizzata
func Logger() iris.Handler {
// Restituisci l'handler tramite chiusura
return func(ctx iris.Context) {
t := time.Now()
// Imposta i parametri
ctx.Values().Set("framework", "iris")
// Logica prima della richiesta
ctx.Next()
// Logica dopo la richiesta
latenza := time.Since(t)
log.Print(latenza)
// Accedi allo stato inviato
stato := ctx.GetStatusCode()
log.Println(stato)
}
}
func main() {
app := iris.New()
// Registra il middleware personalizzato
app.Use(Logger())
app.Get("/test", func(ctx iris.Context) {
// Leggi il parametro impostato dal middleware
framework := ctx.Values().GetString("framework")
// Stampa: "iris"
log.Println(framework)
})
app.Listen(":8080")
}