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()
}
相关推荐
ttwuai3 小时前
XYGo Admin 扩展开发:WebSocket 事件注册与实时推送实战
python·websocket·网络协议·golang·后台框架
踏着七彩祥云的小丑4 小时前
Go学习第2天:程序结构+基础语法+数据类型
开发语言·学习·golang·go
小小龙学IT4 小时前
Go语言后端开发实战指南:构建高性能云原生服务
前端·云原生·golang
不爱编程的小陈4 小时前
Go语言GMP调度模型深度解析:高并发背后的精妙设计
开发语言·后端·golang
怪我冷i17 小时前
zig语言学习笔记——heap-memory
开发语言·golang·zig
胡萝卜的兔1 天前
go使用voidint实现版本切换
开发语言·chrome·golang
jieyucx1 天前
站在云原生高并发天花板:拆解 Go 语言 GMP 模型与 I/O 多路复用的神级配合
开发语言·云原生·golang
先跑起来再说1 天前
Go 排行榜系统的工程化实现:分布式锁、快照表与定时刷新
分布式·go·gin
白露与泡影1 天前
SEATA:Server 到 Golang Client 全链路走读
开发语言·后端·golang
小小龙学IT1 天前
Go 后端开发实战:构建高性能 RESTful API 服务
开发语言·golang·restful