前言
之前两篇简单的记录了一下如何使用Go去操作数据库和redis,但是咱我们日常接口开发的时候,需要对参数进行校验,自我感觉Go还是很优雅的
正文
一、导入依赖
go get -u github.com/go-playground/validator/v10
二、创建一个通用的校验接口
这里是用来定义一个方法,用来获取错误信息,然后我们需要实现这个接口,进行判断等操作
三、定义一个校验规则
type UserInfoRequest struct {
UserId int64 `form:"user_id" json:"user_id" binding:"required"`
Token string `form:"token" json:"token" binding:"required"`
}
上面的是一个例子,定义的是获取用户信息的请求信息
主要看标签这里
form:表示的是这个和表单中的那个字段进行绑定
json:表示这个字段中json的属性名
binding:这里则是需要绑定的规则
四、编写错误信息
func (register UserInfoRequest) GetMessages() ValidatorMessages {
return ValidatorMessages{
"user_id.required": "用户id不能为空",
"token.required": "token不能为空",
}
}
这里就是定义了一个message对象,在里面编写相应的规则,个人感觉和前端的校验规则有点类似,还是很优雅的
五、接收参数
在接口这里,我们就可以使用gin.Context里面的bind接收各种各样的参数
比如这里
c.ShouldBindQuery()
在这里判断是不是有错误,如果有错误,那么将错误返回
request.GetErrorMsg(form, err)
这样就完成了一个参数的校验,个人感觉还是很优雅的,返回的信息可以自己定义,也可以自己抽出公共的结构体进行返回
结语
总体来说,现在是可以写一些接口和小项目了,但是实际上还有很长的路要走,继续加油吧!