Les middlewares sont des mécanismes qui permettent à du code de s'exécuter avant ou après le code de traitement principal dans le cycle de vie d'une requête HTTP. On peut les comprendre comme des crochets dans le framework interceptant toutes les requêtes et réponses.
Utilisation des middlewares dans Iris
Vous pouvez enregistrer des middlewares pour des routes via la méthode Use
dans Iris.
package main
// Importer le package
import "github.com/kataras/iris/v12"
func main() {
// Définir l'instance d'Iris
app := iris.New()
// Utiliser le middleware de compression gzip
app.Use(iris.Compression)
// Paramètres de la route
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Bonjour <strong>%s</strong>!", "World")
})
// Écouter sur le port
app.Listen(":8080")
}
Middleware personnalisé dans Iris
// Signature de la fonction du middleware personnalisé
func Logger() iris.Handler {
// Renvoyer le gestionnaire via une fermeture
return func(ctx iris.Context) {
t := time.Now()
// Définir les paramètres
ctx.Values().Set("framework", "iris")
// Logique avant la requête
ctx.Next()
// Logique après la requête
latence := time.Since(t)
log.Print(latence)
// Accéder au statut envoyé
statut := ctx.GetStatusCode()
log.Println(statut)
}
}
func main() {
app := iris.New()
// Enregistrer le middleware personnalisé
app.Use(Logger())
app.Get("/test", func(ctx iris.Context) {
// Lire le paramètre défini par le middleware
framework := ctx.Values().GetString("framework")
// Il afficherait : "iris"
log.Println(framework)
})
app.Listen(":8080")
}