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()
}
相关推荐
YGGP4 分钟前
【Golang】LeetCode 21. 合并两个有序链表
leetcode·链表·golang
看见繁华7 分钟前
GO 教程
开发语言·后端·golang
Yy_Yyyyy_zz10 分钟前
深入理解 Go 的多返回值:语法、编译原理与工程实践
开发语言·后端·golang
天远云服40 分钟前
Fintech硬核架构:解析天远贷前风险报告接口在Go微服务中的解析策略
微服务·架构·golang
Grassto1 小时前
Go 在哪里找第三方包?Module 查找顺序详解
开发语言·后端·golang
nbsaas-boot11 小时前
Go 项目中如何正确升级第三方依赖(Go Modules 实战指南)
开发语言·后端·golang
HashFlag1 天前
单元测试(go)
golang·单元测试
TDengine (老段)1 天前
TDengine Go 连接器入门指南
大数据·数据库·物联网·golang·时序数据库·tdengine·涛思数据
YGGP1 天前
【Golang】LeetCode 206. 反转链表
leetcode·链表·golang
YGGP1 天前
【Golang】LeetCode 142. 环状链表 II
leetcode·链表·golang