GIn_中间件
Posted yzg-14
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GIn_中间件相关的知识,希望对你有一定的参考价值。
-
gin可以构建中间件,但它只对注册过的路由函数起作用
-
对于分组路由,嵌套使用中间件,可以限定中间件的作用范围
-
中间件分为全局中间件,单个路由中间件和群组中间件
-
gin中间件必须是一个 gin.HandlerFunc 类型
1. 全局中间件
所有请求都会经过的中间件
package main import ( "github.com/gin-gonic/gin" "time" "fmt" ) // 定义中间 func MiddleWare() gin.HandlerFunc { return func(c *gin.Context) { t := time.Now() fmt.Println("中间件开始执行了") // 设置变量到Context的key中,可以通过Get()取 c.Set("request", "中间件") // 执行函数 c.Next() // 中间件执行完后续的一些事情 status := c.Writer.Status() fmt.Println("中间件执行完毕", status) t2 := time.Since(t) fmt.Println("time:", t2) } } func main() { // 创建路由 r := gin.Default() // 注册中间件 r.Use(MiddleWare()) // {}为了代码规范 { r.GET("/middleware", func(c *gin.Context) { // 取值 req, _ := c.Get("request") fmt.Println("request:", req) // 页面接收 c.JSON(200, gin.H{"request": req}) }) } r.Run(":8000") }
1.1 next方法
2. 局部中间件
以上是关于GIn_中间件的主要内容,如果未能解决你的问题,请参考以下文章