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()
}
相关推荐
平头哥AI14 小时前
Day 01 | go run 跑通第一个 Go 程序,go build 留下一个能拷走的 exe
开发语言·后端·golang
2601_9622965115 小时前
如何使用Golang包路径_管理本地和远程模块引用
golang·数据转换·变量定义·常用库·编程语言区别
FfHUCisI19 小时前
GMP 调度器:Go 并发的心脏是如何跳动的
开发语言·golang·php
我不会起名字32220 小时前
一天一道算法题(26):栈的简单应用
java·数据结构·python·算法·leetcode·golang·
gsls20080821 小时前
告别 Vault 的复杂度:用 Go 标准库给 Windows 凭据管理器装上 MCP
windows·golang·mcp
名字还没想好☜1 天前
Go 时间格式化为什么用 2006-01-02:time.Format/Parse 的参考时间、时区与解析踩坑
开发语言·后端·golang·go
FfHUCisI1 天前
Golang Map 哈希表实现
golang·哈希算法·散列表
源代码•宸2 天前
前置准备:定时微服务背景和现状
开发语言·经验分享·后端·微服务·云原生·架构·golang
李燚2 天前
把规则搬回家:三个 BC 的贫血→充血重构实录(第103篇)
golang·agent·ddd·领域驱动设计·eino·deepflux·eino adk
astronautyi2 天前
Go 运行时内存分配与 GC 位图深度剖析
开发语言·后端·golang