میڈل ویئر ایک میکانزم ہے جو کوڈ کو ایچ ٹی ٹی پی درخواست کے دوران میں چلانے سے پہلے یا بعد میں چلنے دیتا ہے۔ اس کو یہاں تک سمجھا جا سکتا ہے کہ یہ فریم ورک میں سبھی درخواستوں اور جوابات کو روکنے والا ایک ہک ہے۔
آئرس میں میڈل ویئر کا استعمال
آپ آئرس میں راستوں کو میڈل ویئر کو "Use" میتھڈ کے ذریعے رجسٹر کرسکتے ہیں۔
package main
// پیکیج کو انلود کریں
import "github.com/kataras/iris/v12"
func main() {
// آئرس انسٹنس کا تعین کریں
app := iris.New()
// گِزِیپ سرکشن میڈل ویئر کا استعمال کریں
app.Use(iris.Compression)
// راستوں کی ترتیبات
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Hello <strong>%s</strong>!", "World")
})
// پورٹ پر سننا کریں
app.Listen(":8080")
}
آئرس میں کسٹم میڈل ویئر
// کسٹم میڈل ویئر فنکشن سگنیچر
func Logger() iris.Handler {
// بندش کے ذریعے ہینڈلر واپسی دیں
return func(ctx iris.Context) {
t := time.Now()
// پیرامیٹرز سیٹ کریں
ctx.Values().Set("framework", "iris")
// درخواست سے پہلے منطق
ctx.Next()
// درخواست کے بعد منطق
latency := time.Since(t)
log.Print(latency)
// بھیجی جانے والی حالت تک رسائی حاصل کریں
status := ctx.GetStatusCode()
log.Println(status)
}
}
func main() {
app := iris.New()
// کسٹم میڈل ویئر کو رجسٹر کریں
app.Use(Logger())
app.Get("/test", func(ctx iris.Context) {
// میڈل ویئر کے ذریعے سیٹ کردہ پیرامیٹر پڑھیں
framework := ctx.Values().GetString("framework")
// "iris" چھاپے گا
log.Println(framework)
})
app.Listen(":8080")
}