มิดเดิลแวร์เป็นเครื่องมือที่ช่วยให้โค้ดสามารถทำงานก่อนหรือหลังโค้ดหลักในวงจรชีวิตของการร้องขอ HTTP สามารถเข้าใจได้ว่ามันเป็นเหยือกในกรอบที่ทำการแสวงหาทุกการร้องขอและการตอบกลับ
การใช้มิดเดิลแวร์ใน iris
คุณสามารถลงทะเบียนมิดเดิลแวร์ไปยังเส้นทางผ่าน Use
วิธีใน iris.
package main
// Import แพ็คเกจ
import "github.com/kataras/iris/v12"
func main() {
// กำหนดอินสแตนซ์ของ iris
app := iris.New()
// ใช้มิดเดิลแวร์บีบอัด gzip
app.Use(iris.Compression)
// การตั้งค่าเส้นทาง
app.Get("/", func(ctx iris.Context) {
ctx.HTML("สวัสดี <strong>%s</strong>!", "โลก")
})
// ฟังก์ชันการฟังเร็ว
app.Listen(":8080")
}
มิดเดิลแวร์ที่กำหนดเองใน iris
// ลายเซ็นฟังก์ชันมิดเดิลแวร์ที่กำหนดเอง
func Logger() iris.Handler {
// ส่ง 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")
}