0
点赞
收藏
分享

微信扫一扫

go使用gin框架之中间件

中间件主要是指可以拦截http请求,对到达请求之前进行一些处理,如数据处理,权限控制,认证等。

r := gin.Default(),默认自带Logger(), Recovery()全局作用了两个中间件。如果不想使用这2个中间件,可以使用r := gin.New()。

中间件写法,返回的是gin.HandlerFunc

func RequestInfos() gin.HandlerFunc {
return func(Context *gin.Context){
path := context.FullPath()
method := context.Request.Method
。。。。
}

}

1、增加全局中间件,这样每个http请求都会先执行RequestInfos()

r.Use(requestInfos())

2、单个路由使用,在访问/benchmark路由时,执行RequestInfos()。

r.GET("/benchmark", requestInfos(), benchEndpoint)

3、在路由组中使用,在访问/test/abc时就会使用中间件

r := gin.Default()
v := r.Group("/test")
v.Use(requestInfos())
{
v.POST("/abc", benchEndpoint)
}

4、如何使中间件在执行完请求后执行

func RequestInfos() gin.HandlerFunc {
return func(context *gin.Context){
path := context.FullPath()
method := context.Request.Method
context.Next()
//后面在请求执行完后执行
}

}

举报

相关推荐

0 条评论