go gin框架中间件
中间件也叫拦截器或者过滤器,这些中间件会在路由之前执行,以此完成一些特定功能,比如打印日志啊、登录认证、权限认证、错误返回等。
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
"time"
)
func indexHandler(c *gin.Context){
fmt.Println("index in ")
c.JSON(http.StatusOK,gin.H{
"msg":"index",
})
}
func m1(c *gin.Context) {
fmt.Println("m1 in ")
start:=time.Now()
c.Next()//调用后续处理函数
//c.Abort()//阻止调用后续处理函数
cost:=time.Since(start)
fmt.Println("cost time is :",cost)
fmt.Println("m1 out ")
}
func m2(c *gin.Context) {
fmt.Println("m2 in ")
c.Next()//调用后续处理函数
fmt.Println("m2 out ")
}
//定义一个中间件
func main() {
r:=gin.Default()
r.Use(m1,m2)
r.GET("/index", indexHandler)
r.GET("/shop", func (c *gin.Context){
fmt.Println("shop in ")
c.JSON(http.StatusOK,gin.H{
"msg":"shop",
})
})
r.GET("/user", func (c *gin.Context){
fmt.Println("user in ")
c.JSON(http.StatusOK,gin.H{
"msg":"user",
})
})
r.Run()
}