目录
单个Gin中间件
中间件简要概述
在 gin
框架中,中间件是一个非常重要的概念,它可以在请求处理的不同阶段执行一些额外的操作,例如日志记录、权限验证、性能统计等。以下是关于 gin
中间件的简要概述:
一、中间件的定义:
中间件是一个函数,它接收一个 *gin.Context
对象作为参数,并且可以在处理请求之前、之后或在请求处理过程中执行一些操作。中间件函数可以修改请求或响应,也可以终止请求的处理。
二、中间件的使用:
- 全局中间件 :使用
r.Use()
方法将中间件应用到所有的路由上。 - 局部中间件 :在路由定义时,使用
r.GET("/path", middleware1, middleware2, handler)
这样的方式将中间件应用到特定的路由上。
这里以全局中间件为例子进行讲解。
这一中间件m1是用来进行计时操作的,可以用Use来进行全局注册。
这一例子中对三个GET请求做出相应的中间件的基本使用。
效果展示
多个Gin中间件
当有多个中间件时会按照如图所示的情况进行一步一步的执行。
执行顺序如图所示
示例
m1和m2全都是全局中间件。
控制台中的效果如下:
Abort阻止后续处理函数
执行流程图
在m2函数中调用Abort会阻止后续处理函数
可以看出并没有执行index中的操作
前端页面中也是空白的
return直接返回
执行流程图
不难看出m2 out并没有执行,同样的前端页面也是什么都没有
全局注册中间件
先定义了一个用于校验的函数,当doCheck为true的时候执行。
在m2函数中Set了一个姓名-VON
在indexHandler函数中调用m2中传入的name
设置doCheck的值为true,调用indexHandler函数。
命令台效果
前端页面效果