中间件可以理解为洋葱穿透。
c.Next() 之前的操作是在 Handler 执行之前就执行;
c.Next() 之后的操作是在 Handler 执行之后再执行;
func Middleware(c *gin.Context) {
fmt.Println("Hello Before;")
c.Next()
fmt.Println("Hello After;")
}
然后你在Handler中输出一些内容就能发现。Hello Before 在你的Handler之前就输出。 Hello After在之后输出。
之前的操作一般用来做验证处理,访问是否允许之类的。
之后的操作一般是用来做总结处理,比如格式化输出、响应结束时间,响应时长计算之类的。