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")
}