Middleware adalah mekanisme yang memungkinkan kode dijalankan sebelum atau sesudah kode penanganan utama dalam siklus hidup permintaan HTTP. Ini dapat dipahami sebagai sebuah hook dalam kerangka kerja yang menangkap semua permintaan dan tanggapan.
Menggunakan Middleware di iris
Anda dapat mendaftarkan middleware ke rute melalui metode Use
di iris.
package main
// Impor paket
import "github.com/kataras/iris/v12"
func main() {
// Tentukan instansi iris
app := iris.New()
// Gunakan middleware kompresi gzip
app.Use(iris.Compression)
// Pengaturan rute
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Hello <strong>%s</strong>!", "Dunia")
})
// Dengarkan pada port
app.Listen(":8080")
}
Middleware Kustom di iris
// Tanda tangan fungsi middleware kustom
func Logger() iris.Handler {
// Kembalikan handler melalui closure
return func(ctx iris.Context) {
t := time.Now()
// Atur parameter
ctx.Values().Set("framework", "iris")
// Logika sebelum permintaan
ctx.Next()
// Logika setelah permintaan
latency := time.Since(t)
log.Print(latency)
// Akses status yang dikirim
status := ctx.GetStatusCode()
log.Println(status)
}
}
func main() {
app := iris.New()
// Daftarkan middleware kustom
app.Use(Logger())
app.Get("/test", func(ctx iris.Context) {
// Baca parameter yang diatur oleh middleware
framework := ctx.Values().GetString("framework")
// Ini akan mencetak: "iris"
log.Println(framework)
})
app.Listen(":8080")
}