gin-04-中间件
一 Gin中间件
1.1 中间件的概念
gin框架允许在处理请求时,加入用户自己的钩子函数,该钩子函数即中间件。他的作用与Java中的拦截器,Node中的中间件相似。
中间件需要返回gin.HandlerFunc函数,多个中间件通过Next函数来依次执行。
1.2 入门使用案例
现在设计一个中间件,在每次路由函数执行前打印一句话,在上一节的项目基础上新建middleware文件夹,新建一个中间件文件MyFmt.go:
package middleware
import (
"fmt"
"github.com/gin-gonic/gin"
)
// 定义一个中间件
func MyFMT() gin.HandlerFunc {
return func(c *gin.Context) {
host := c.Request.Host
fmt.Printf("Before: %s\n",host)
c.Next()
fmt.Println("Next: ...")
}
}
在路由函数中使用中间件:
r.GET("/user/login", middleware.MyFMT(), userLogin)
打印结果:
Before: localhost:8080
Next: ...
[GIN] 2019/07/28 - 16:28:16 | 200 | 266.33µs | ::1 | GET /user/login