在 Gin 中,中间件是一种用于处理 HTTP 请求和响应的功能强大的机制。中间件是一段位于请求处理链和最终处理器之间的代码,
它可以截获请求、执行预处理操作,修改请求或响应,然后将控制权传递给下一个中间件或最终的请求处理器。
中间件在业务使用中,方便注入一些业务无关的逻辑,并且方便移植到特质的接口中;
下文会聊下:日志、ip限制、API请求速率控制、跨域请求;
以下是 Gin 中间件的概念和使用方式:
概念
执行顺序: Gin 中的中间件按照它们添加的顺序执行。先添加的中间件先执行。
中断处理链: 中间件可以选择中断处理链,阻止后续的中间件和处理器执行。
修改请求和响应: 中间件可以修改请求的内容,也可以修改响应的内容。这使得中间件非常灵活,可以用于日志记录、认证、跨域处理等多种用途。
1、日志
使用方式
- 引入 Gin 包:
import "github.com/gin-gonic/gin"
- 定义中间件函数:
中间件函数是一个接受 *gin.Context
参数的函数。例如,一个简单的日志记录中间件:
func LoggerMiddleware(c *gin.Context) {
// 执行处理之前的逻辑
fmt.Println("Start Request")
// 继续处理链
c.Next()
// 处理之后的逻辑
fm