Skip to content

Day 18 - 中间件

中间件定义

go
func Logger() gin.HandlerFunc {
    return func(c *gin.Context) {
        // 前置处理
        start := time.Now()
        
        c.Next() // 执行后续处理
        
        // 后置处理
        fmt.Println(time.Since(start))
    }
}

// 使用
r.Use(Logger())

内置中间件

go
r.Use(gin.Logger())
r.Use(gin.Recovery())
r.Use(cors.Default())

自定义认证中间件

go
func AuthMiddleware() gin.HandlerFunc {
    return func(c *gin.Context) {
        token := c.GetHeader("Authorization")
        if token == "" {
            c.JSON(401, gin.H{"error": "Unauthorized"})
            c.Abort()
            return
        }
        c.Next()
    }
}

📅 学习进度

Day主题状态
01-17基础/Gin
18中间件
19数据库-GORM

本文为Go 30天学习计划第18天内容

📚 导航

| ← Day 17 - 上一章 | Day 19 - 下一章 →

最后更新: