Gin 的 binding 能快速完成参数绑定和校验,但默认错误信息通常不适合直接返回给前端。工程里需要把字段名、规则和业务提示做一层翻译。

type CreateUserReq struct {
    Name string `json:"name" binding:"required,min=2"`
    Age  int    `json:"age" binding:"gte=1,lte=120"`
}

我的做法是在入口层统一处理校验错误,把 validator.ValidationErrors 转成固定结构,例如 {field, message}。这样前端可以稳定展示,也方便测试。

校验只负责“格式正确”,不要负责“业务存在”。例如手机号格式可以在 binding 做,手机号是否已注册应该交给 service。

分清格式校验和业务校验,接口层会薄很多,错误响应也更一致。

分类: Gin 实战 标签: Gin 参数校验 validator

评论

-- 评论已关闭 --

全部评论