1.go可以构建中哈进件,但它只对注册过的路由函数起作用
2.对于分组路由,嵌套使用中间件,可以限定中间件的作用范围
3.中间件分为全局中间件,单个路由中间件和群组中间件
4.gin中间件必须是一个gin.HandlerFunc 类型
示例(全局、单个路由,组路由)
package mainimport ("fmt""github.com/gin-gonic/gin""time")//全局中间件func middleFunc(c *gin.Context) {t := time.Now()fmt.Println("中间件开始")//设置值c.Set("request", "middle")//指定函数,如果不写,默认最后执行函数c.Next()// 中间件执行完后续的一些事情status := c.Writer.Status()fmt.Println("中间件结束", status)t2 := time.Since(t)fmt.Println("time", t2)}func main() {r := gin.Default()r.Use(middleFunc)r.GET("/middle", func(context *gin.Context) {req, _ := context.Get("request")fmt.Println("哈哈哈")context.JSON(200, req)})//单个路由中间件使用r.GET("/middle2", middleFunc, func(context *gin.Context) {req, _ := context.Get("request")fmt.Println("哈哈哈")context.JSON(200, req)})//组中间件使用v2:=r.Group("/v2",middleFunc){v2.GET("/middle", func(context *gin.Context) {req, _ := context.Get("request")fmt.Println("哈哈哈")context.JSON(200, req)})}r.Run(":8080")}
