Middleware, bir HTTP isteğinin yaşam döngüsünde ana işleme kodundan önce veya sonra kodun çalışmasına izin veren bir mekanizmadır. Tüm istekleri ve yanıtları onaylayan bir çerçevede kancayı anlamak olarak anlaşılabilir.
Iris'te Middleware Kullanımı
Middleware'leri iris'te Use
yöntemi aracılığıyla rotalara kaydedebilirsiniz.
package main
// Paketi içe aktar
import "github.com/kataras/iris/v12"
func main() {
// iris örneğini tanımla
app := iris.New()
// gzip sıkıştırma middleware'ini kullan
app.Use(iris.Compression)
// Rota ayarları
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Merhaba <strong>%s</strong>!", "Dünya")
})
// Port üzerinde dinle
app.Listen(":8080")
}
Iris'te Özel Middleware Kullanımı
// Özel middleware fonksiyonunun imzası
func Logger() iris.Handler {
// Kapanış aracılığıyla işleyiciyi döndür
return func(ctx iris.Context) {
t := time.Now()
// Parametreleri ayarla
ctx.Values().Set("çerçeve", "iris")
// İstekten önce mantık
ctx.Next()
// İstekten sonra mantık
geçikme := time.Since(t)
log.Print(geçikme)
// Gönderilen duruma eriş
durum := ctx.GetStatusCode()
log.Println(durum)
}
}
func main() {
app := iris.New()
// Özel middleware'ı kaydet
app.Use(Logger())
app.Get("/test", func(ctx iris.Context) {
// Middleware tarafından ayarlanan parametreyi oku
çerçeve := ctx.Values().GetString("çerçeve")
// "iris" yazdırır
log.Println(çerçeve)
})
app.Listen(":8080")
}