统一响应结构是好事,但如果实现方式是业务里到处 panic,再由 recover 中间件兜底,就会把正常错误和程序缺陷混在一起。

我更倾向于 handler 显式处理业务错误,panic 只留给真正不可恢复的问题。统一响应可以通过小函数完成,不需要牺牲控制流。

if err != nil {
    response.Error(c, err)
    return
}
response.OK(c, data)

错误类型可以带 code、message 和 cause。对外返回稳定文案,对内日志保留原始错误,这样既不泄露细节,也不影响排障。

统一响应的价值是降低接口差异,不是隐藏所有错误路径。清楚地 return,通常比“抛出去让外层猜”更适合业务系统。

分类: Gin 实战 标签: Gin 错误处理 API设计

评论

-- 评论已关闭 --

全部评论