Gin框架中如何快速掌握中间件的使用技巧?

摘要:Gin 中间件 定义中间件 中间件必须是一个gin.HandlerFunc类型。 package main import ( "fmt" "github.com
Gin 中间件 定义中间件 中间件必须是一个gin.HandlerFunc类型。 package main import ( "fmt" "github.com/gin-gonic/gin" "time" ) // 计时中间件 func Timer1() gin.HandlerFunc { return func(c *gin.Context) { start := time.Now() c.Next() // 调用后续中间件和路由处理 //c.Abort() // 中断后续中间件和路由处理,返回给客户端。相当于return了 end := time.Now() fmt.Println("耗时1:", end.Sub(start)) } } // 计时中间件 func Timer2() gin.HandlerFunc { return func(c *gin.Context) { start := time.Now() c.Next() end := time.Now() fmt.Println("耗时2:", end.Sub(start)) } } func main() { r := gin.Default() r.Use(Timer1(), Timer2()) // 注册中间件 r.GET("/", func(c *gin.Context) { time.Sleep(3 * time.Second) c.JSON(200, gin.H{ "code": 200, "msg": "ok", }) }) r.Run(":8080") } 注册中间件 全局注册 中间件 package main import ( "fmt" "github.com/gin-gonic/gin" "time" ) // 计时中间件 func Timer1() gin.HandlerFunc { return func(c *gin.Context) { println("注册顺序1") start := time.Now() c.Next() // 调用后续中间件和路由处理 //c.Abort() // 中断后续中间件和路由处理,返回给客户端。
阅读全文