Golang gin 框架中间件(middleware)实现原理详解
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
)
// 自定义中间件示例
func MyCustomMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
// 在调用后续处理器之前,可以进行一些预处理工作
fmt.Println("Before request")
// 继续链式调用后续的中间件或路由处理器
c.Next()
// 在调用路由处理器之后,可以进行一些额外工作
// 例如记录响应状态,写入额外响应头或处理错误
fmt.Println("After request")
}
}
func main() {
// 创建一个Gin引擎
engine := gin.New()
// 使用自定义中间件
engine.Use(MyCustomMiddleware())
// 定义一个简单的GET路由
engine.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "Hello, World!")
})
// 启动服务器
engine.Run(":8080")
}
这段代码演示了如何在Golang的Gin web框架中创建和使用自定义的中间件。自定义中间件MyCustomMiddleware
可以在请求处理前后执行特定逻辑,并且可以通过c.Next()
调用后续的中间件或路由处理器。在服务启动时,通过engine.Use()
将自定义中间件添加到Gin的中间件链中。
评论已关闭