Golang Gin 局部、全局 中间件使用
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
// 局部中间件,仅应用于特定路由
func localMiddleware(c *gin.Context) {
// 在调用下游处理器之前执行的逻辑
c.Writer.Header().Set("X-Local-Middleware", "true")
c.Next() // 调用下一个中间件或路由处理器
// 在调用下游处理器之后执行的逻辑
}
// 全局中间件,应用于所有路由
func globalMiddleware(c *gin.Context) {
// 在调用下游处理器之前执行的逻辑
c.Writer.Header().Set("X-Global-Middleware", "true")
c.Next() // 调用下一个中间件或路由处理器
// 在调用下游处理器之后执行的逻辑
}
func main() {
router := gin.Default() // 创建一个带有默认中间件的路由器
// 全局注册中间件
router.Use(globalMiddleware)
// 创建一个分支路由,并注册局部中间件
api := router.Group("/api")
api.Use(localMiddleware)
{
api.GET("/hello", func(c *gin.Context) {
c.String(http.StatusOK, "Hello from API")
})
}
// 启动服务器
router.Run(":8080")
}
这段代码演示了如何在Gin框架中定义和使用局部和全局中间件。首先定义了两个中间件函数localMiddleware
和globalMiddleware
。然后在路由器中全局注册了globalMiddleware
,并在特定分支路由上注册了localMiddleware
。最后,在:8080
端口启动了服务器。
评论已关闭