目录
- 前言
- 正文
- 结尾
前言
Gin 是使用纯 Golang 语言实现的 HTTP Web 框架,Gin 的接口设计简洁,性能极高,现在被广泛使用。上一篇文章介绍了 Gin 的基本使用方式,今天我们详细看一看 Gin 在中间件方面的内容。
正文
默认情况下没有中间件的空白 Gin
一般情况下,我们会这样初始化 Gin,代码如下:
r := gin.Default()
其实,这样的话,gin 就默认使用了日志中间件和 Recovery 中间件。其中,日志中间件大家都可以理解,就是日志模块,用来输出服务运行日志。Recovery 中间件是用来让程序在 panic 异常崩溃中恢复的模块。
那么,有没有不带任何中间件的 gin 呢?答案是有的。
我们可以这样初始化 gin,代码如下:
r := gin.New()
我们在这个基础上也可以继续扩展使用其他中间件,比如如果想要手动集成日志中间件和 Recovery 中间件,应该怎么做呢?来看代码:
func main() { // 创建空白路由 r := gin.New() // 集成日志中间件 // 默认 gin.DefaultWriter = os.Stdout r.Use(gin.Logger()) // 集成 Recovery 中间件 r.Use(gin.Recovery()) // Per route middleware, you can add as many as you desire. r.GET("/benchmark", MyBenchLogger(), benchEndpoint) // 认证分组 // authorized := r.Group("/", AuthRequired()) // 上面的书写方法等价于下面的编码方式 authorized := r.Group("/") authorized.Use(AuthRequired()) { authorized.POST("/login", loginEndpoint) authorized.POST("/submit", submitEndpoint) authorized.POST("/read", readEndpoint) } // 启动服务监听 8080 端口 r.Run(":8080") }
从上面的代码可以看出,使用 Gin 框架的中间件还是非常灵活的,当然我们也可以自己定义中间件,然后完成集成。
结尾
好了,今天关于 Gin 框架的中间件就介绍这么多,感兴趣的小伙伴们,可以自己动手试一试,编码实现也非常简单。
作者简介:大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,同时也是CSDN博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!