数据校验

在model中可用 binding 来对数据进行校验。
Gin对于数据校验使用的是 validator.v8 库,通过 binding:”” 方式进行校验。

  1. type UserModel struct {
  2. Email string `form:"email" binding:"email"`
  3. Password string `form:"password"`
  4. PasswordAgain string `form:"password-again" binding:"eqfield=Password"`
  5. }
  1. func UserRegister(context *gin.Context) {
  2. var user model.UserModel
  3. if err :=context.ShouldBind(&user);err!=nil {
  4. println("err ->", err.Error())
  5. return
  6. }
  7. println("email", user.Email, "password", user.Password, "password again", user.PasswordAgain)
  8. }

上例中,会对Email检测邮箱是否合法,会对PasswordAgain检测是否与Password的值相同。
如果不合法,会打印错误信息

  1. err -> Key: 'UserModel.Email' Error:Field validation for 'Email' failed on the 'email' tag
  2. Key: 'UserModel.PasswordAgain' Error:Field validation for 'PasswordAgain' failed on the 'eqfield' tag

单元测试

可以使用这个工具
testify
可以构造http请求。