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

// 定义请求
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
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容