El middleware es un mecanismo que permite que el código se ejecute antes o después del código principal de manejo en el ciclo de vida de una solicitud HTTP. Se puede entender como un gancho en el marco que intercepta todas las solicitudes y respuestas.
Uso de Middleware en Iris
Puede registrar middleware en rutas a través del método Use
en iris.
paquete principal
// Importar el paquete
import "github.com/kataras/iris/v12"
func main() {
// Definir la instancia de iris
app := iris.New()
// Usar el middleware de compresión gzip
app.Use(iris.Compression)
// Configuración de ruta
app.Get("/", func(ctx iris.Context) {
ctx.HTML("¡Hola <strong>%s</strong>!", "Mundo")
})
// Escuchar en el puerto
app.Listen(":8080")
}
Middleware personalizado en iris
// Firma de función de middleware personalizado
func Logger() iris.Handler {
// Devolver el manejador a través de un cierre
return func(ctx iris.Context) {
t := time.Now()
// Establecer parámetros
ctx.Values().Set("framework", "iris")
// Lógica antes de la solicitud
ctx.Next()
// Lógica después de la solicitud
latencia := time.Since(t)
log.Print(latencia)
// Acceder al estado enviado
estado := ctx.GetStatusCode()
log.Println(estado)
}
}
func main() {
app := iris.New()
// Registrar el middleware personalizado
app.Use(Logger())
app.Get("/test", func(ctx iris.Context) {
// Leer el parámetro establecido por el middleware
framework := ctx.Values().GetString("framework")
// Imprimirá: "iris"
log.Println(framework)
})
app.Listen(":8080")
}