文章目录
简介
Gin框架允许开发者在处理请求的过程中,加入用户自己的钩子(Hook)函数。这个钩子函数就叫中间件,中间件适合处理一些公共的业务逻辑,比如登录认证、权限校验、数据分页、记录日志、耗时统计等。
中间件就是在请求中间起到拦截作用的处理函数。
Gin默认中间件
如果你使用Gin.Default()
实例化gin引擎,默认有两个中间件,Logger
和Recovery
,分别用来处理日志和处理错误。如果使用gin.New()
需要重新添加。
// 实例化gin引擎,默认含有 Logger 和 Recovery 中间件
e := gin.Default()
// 新建一个没有任何默认中间件的路由
r := gin.New()
// 全局中间件
// Logger 中间件将日志写入 gin.DefaultWriter,即使你将 GIN_MODE 设置为 release。
// By default gin.DefaultWriter = os.Stdout
r.Use(gin.Logger())
// Recovery 中间件会 recover 任何 panic。如果有 panic 的话,会写入 500。
r.Use(gin.Recovery())
Logger
中间件将日志写入gin.DefaultWriter
,即使配置了GIN_MODE=release
。Recovery
中间件会recover任何panic
。如果有panic的话,会写入500响应码。
自定义中间件
自定义中间件非常简单,先定义一个符合下面格式的处理函数
type HandlerFunc func(*Context)
再使用Use
方法调用
func (engine