首页 > 后端开发 > Golang > 如何自定义 Gin 结构标签验证的错误消息?

如何自定义 Gin 结构标签验证的错误消息?

Susan Sarandon
发布: 2024-12-15 05:42:10
原创
516 人浏览过

How to Customize Error Messages from Gin's Struct Tag Validation?

自定义结构标签验证的错误消息

在 Gin 中,结构标签验证用于在数据库插入之前确保数据完整性。返回的默认错误对于用户来说是冗长且无意义的。本文介绍如何自定义错误消息以提供更有意义的响应。

Gin 使用 go-playground/validator/v10 包进行验证。错误作为 validator.ValidationErrors 返回。要自定义消息,请使用标准错误包来解包错误并访问 validator.FieldError 字段。

创建错误模型(例如 ApiError)来定义自定义错误消息的结构。例如:

type ApiError struct {
    Field string
    Msg   string
}
登录后复制

在处理程序中,按如下方式处理错误:

var u User
err := c.BindQuery(&u);
if err != nil {
    var ve validator.ValidationErrors
    if errors.As(err, &ve) {
        out := make([]ApiError, len(ve))
        for i, fe := range ve {
            out[i] = ApiError{fe.Field(), msgForTag(fe.Tag())}
        }
        c.JSON(http.StatusBadRequest, gin.H{"errors": out})
    }
    return
}
登录后复制

最后,定义一个辅助函数以将验证标签映射到自定义消息:

func msgForTag(tag string) string {
    switch tag {
    case "required":
        return "This field is required"
    case "email":
        return "Invalid email"
    }
    return ""
}
登录后复制

使用这种方法,将使用字段名称和基于验证标签的定制消息来自定义错误消息。

以上是如何自定义 Gin 结构标签验证的错误消息?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板