Middleware là một cơ chế cho phép mã chạy trước hoặc sau mã xử lý chính trong vòng đời của một yêu cầu HTTP. Nó có thể được hiểu như là một kẽm trong framework chặn tất cả các yêu cầu và phản hồi.
Sử dụng Middleware trong iris
Bạn có thể đăng ký middleware vào các route thông qua phương thức Use
trong iris.
package main
// Import package
import "github.com/kataras/iris/v12"
func main() {
// Xác định phiên bản iris
app := iris.New()
// Sử dụng middleware nén gzip
app.Use(iris.Compression)
// Cài đặt route
app.Get("/", func(ctx iris.Context) {
ctx.HTML("Xin chào <strong>%s</strong>!", "Thế giới")
})
// Lắng nghe trên cổng
app.Listen(":8080")
}
Middleware tùy chỉnh trong iris
// Chữ ký chức năng middleware tùy chỉnh
func Logger() iris.Handler {
// Trả về trình xử lý thông qua closure
return func(ctx iris.Context) {
t := time.Now()
// Đặt tham số
ctx.Values().Set("framework", "iris")
// Logic trước yêu cầu
ctx.Next()
// Logic sau yêu cầu
latency := time.Since(t)
log.Print(latency)
// Truy cập vào trạng thái đang gửi
status := ctx.GetStatusCode()
log.Println(status)
}
}
func main() {
app := iris.New()
// Đăng ký middleware tùy chỉnh
app.Use(Logger())
app.Get("/test", func(ctx iris.Context) {
// Đọc tham số được đặt bởi middleware
framework := ctx.Values().GetString("framework")
// Sẽ in ra: "iris"
log.Println(framework)
})
app.Listen(":8080")
}