มิดเดิลแวร์เป็นเครื่องมือที่ช่วยให้โค้ดสามารถทำงานก่อนหรือหลังโค้ดหลักในวงจรชีวิตของการร้องขอ 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")
}