美文网首页
gin框架自定义验证错误提示信息

gin框架自定义验证错误提示信息

作者: 多不了少不了 | 来源:发表于2021-08-11 12:07 被阅读0次
// 定义请求
type LoginRequest struct {
    Mobile string `form:"mobile" json:"mobile" binding:"required" required_err:"请输入手机号码"`
    Code   string `form:"code" json:"code" binding:"required" err:"请输入验证码"`
}

// 自定义错误消息
func GetError(errs validator.ValidationErrors, r interface{}) string {
    s := reflect.TypeOf(r)
    for _, fieldError := range errs {
        filed, _ := s.FieldByName(fieldError.Field())
        errTag := fieldError.Tag() + "_err"
        // 获取对应binding得错误消息
        errTagText := filed.Tag.Get(errTag)
        // 获取统一错误消息
        errText := filed.Tag.Get("err")
        if errTagText != "" {
            return errTagText
        }
        if errText != "" {
            return errText
        }
        return fieldError.Field() + ":" + fieldError.Tag()
    }
    return ""
}

// 解析参数返回错误
func Test(c *gin.Context) {
    var r LoginRequest
    if err := c.ShouldBindQuery(&r); err != nil {
        c.String(200, GetError(err.(validator.ValidationErrors), r))
        return
    }
    c.String(200, "SUCCESS")
    return
}

相关文章

网友评论

      本文标题:gin框架自定义验证错误提示信息

      本文链接:https://www.haomeiwen.com/subject/cntcbltx.html