Gin 使用示例(十):自定义中间件


示例代码(src/gin-demo/examples/middleware.go):

package main
    
import (
    "github.com/gin-gonic/gin"
    "log"
    "time"
)
    
func Logger() gin.HandlerFunc {
    return func(c *gin.Context) {
        t := time.Now()
    
        // 设置 example 变量
        c.Set("example", "12345")
    
        // 请求之前...
    
        c.Next()
    
        // 请求之后...
    
        latency := time.Since(t)
        // 打印请求处理时间
        log.Print(latency)
    
        // 访问即将发送的响应状态码
        status := c.Writer.Status()
        log.Println(status)
    }
}
    
func main() {
    r := gin.New()
    // 使用自定义的 Logger 中间件
    r.Use(Logger())
    
    // 定义路由
    r.GET("/test", func(c *gin.Context) {
        example := c.MustGet("example").(string)
        // 打印 example 值 12345
        log.Println(example)
    })
    
    // 监听 0.0.0.0:8080
    r.Run(":8080")
}

启动 HTTP 服务器,访问 http://localhost:8080/test,控制台输出日志:

-w810


点赞 取消点赞 收藏 取消收藏

<< 上一篇: Gin 使用示例(九):自定义日志格式

>> 下一篇: Gin 使用示例(十一):自定义表单验证器