Gin中间件使用方法,Next()挂起,About()终止,单条路由内的中间件与路由组中间件的执行优先级

本文介绍了Gin框架中中间件的作用,如登录认证、权限校验等,并展示了如何为单个路由和路由组注册中间件。同时,讨论了中间件的执行顺序以及`Next()`和`Abort()`的功能,帮助理解Gin中间件的控制流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Gin中间件作用

在请求进入路由后,回调函数前,对单一路由或路由组,做一些公共操作。比如登录认证、权限校验、数据分页、记录日志、耗时统计等

Gin中间件用法

为路由单独注册中间件

        就是在单行路由组内,路径与回调函数间插入中间件函数名m1

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
)

func Index(c *gin.Context) {
	fmt.Println("index.....")
	c.JSON(http.StatusOK, gin.H{
		"msg": "index",
	})
}

//定义一个中间件
func m1(c *gin.Context) {
	fmt.Println("m1 in.........")
}
func main() {
	r := gin.Default()
	//m1处于Index函数的前面,请求来之后,先走m1,再走Index回调函数
	r.GET("/index", m1, Index)
	_ = r.Run()
}

为路由组注册中间件Use

为同一批某个group组下的路由添加中间件

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"net/http"
)

func Index(c *gin.Context) {
	fmt.Println("index.....")
	c.JSON(http.StatusOK, gin.H{
		"msg": "index",
	})
}

//定义一个中间件
func m1(c *gin.Context) {
	fmt.Println("m1 in.........")
}
func main() {
	r := gin.Default()
    tmp := r.Group("/").Use(m1())
	tmp.GET("/index", Index)
	_ = r.Run()
}

单条路由内的中间件与路由组中间件的执行优先级

需独自尝试,留个小作业

关键字Next(),Abort()

next就是不再进行下面的代码,直接跳到下一个中间件或者是路径全部执行后,再回头来执行剩余代码

abort就是继续这次的代码,而且不再进行后面的中间件或者是路径了,只把这次的搞完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值