Golang gin框架中间件c.JSON返回结果后终止返回

gin框架中间件c.JSON返回结果后还是会继续执行之后的方法,我们可以用c.Abort()来终止后续的处理

go 复制代码
func MiddlewareFunction(c *gin.Context) {
    // 假设有某种条件下需要返回错误
    if someCondition {
        c.JSON(http.StatusBadRequest, gin.H{"error": "some error message"})
        c.Abort() // 终止后续处理
        return
    }
 
    // 如果没有错误,则继续后续处理
    c.Next() // 继续执行其他的middleware和handlers
}
 
func main() {
    r := gin.Default()
 
    // 使用MiddlewareFunction
    r.Use(MiddlewareFunction)
 
    // 其他的handlers
    r.GET("/", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{"message": "success"})
    })
 
    // 启动服务器
    r.Run()
}
相关推荐
hasty2 小时前
限制写了却没生效:OpenTelemetry Go 的 Unicode 截断边界
开发语言·后端·golang
EatFan7 小时前
Go语言全栈实战:基于 Gin + Vue + JWT + RBAC 从零搭建前后端分离权限管理系统
vue.js·golang·go·vue·gin·jwt·rbac
ZealSinger8 小时前
Go slog生产落地LevelVar与共存
开发语言·后端·golang·go
丹宇码农8 小时前
Go 与 Python 协程(Coroutine)对比演示项目
开发语言·python·golang
ttwuai8 小时前
Go开源后台管理系统推荐:3个官方仓库怎么按技术栈和适用边界比较?
开发语言·golang·开源
茉莉玫瑰花茶10 小时前
GO [ 并发 · 调度器 ]
开发语言·后端·golang
恋喵大鲤鱼10 小时前
go list command
golang·list
茉莉玫瑰花茶21 小时前
GO [ 方法 ]
开发语言·后端·golang
数据库百宝箱1 天前
rum&gin索引对比
java·数据库·gin
茉莉玫瑰花茶1 天前
GO [ 函数 ]
开发语言·后端·golang