Golang Gin 框架之中间件(六)

举报
liuzhen007 发表于 2021/11/27 15:47:42 2021/11/27
【摘要】 目录前言正文结尾前言Gin 是使用纯 Golang 语言实现的 HTTP Web 框架,Gin 的接口设计简洁,性能极高,现在被广泛使用。上一篇文章介绍了 Gin 的基本使用方式,今天我们详细看一看 Gin 在中间件方面的内容。正文默认情况下没有中间件的空白 Gin一般情况下,我们会这样初始化 Gin,代码如下:r := gin.Default()其实,这样的话,gin 就默认使用了日志中间...

目录

  • 前言

  • 正文

  • 结尾

前言

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 框架的中间件就介绍这么多,感兴趣的小伙伴们,可以自己动手试一试,编码实现也非常简单。

作者简介:大家好,我是 liuzhen007,是一位音视频技术爱好者,同时也是CSDN博客专家、华为云社区云享专家、签约作者,欢迎关注我分享更多干货!



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。