golang 组件 validator介绍以及使用案例——单字段验证和结构体验证
package main
import (
"fmt"
"github.com/go-playground/validator/v10"
)
type RegisterRequest struct {
Username string `json:"username" validate:"required,alphanum,min=3,max=20"`
Password string `json:"password" validate:"required,min=6,max=20"`
Email string `json:"email" validate:"required,email"`
}
func main() {
validate := validator.New()
request := RegisterRequest{
Username: "johndoe",
Password: "123",
Email: "johndoe@example.com",
}
err := validate.Struct(request)
if err != nil {
// 打印验证错误
fmt.Println(err)
} else {
fmt.Println("Registration request is valid.")
}
}
这段代码首先导入了validator
包,并定义了一个RegisterRequest
结构体,其中包含了用户名、密码和邮箱字段。在main
函数中,我们创建了一个validator
实例,并使用Struct
方法对RegisterRequest
实例进行了验证。如果验证失败,它会打印错误信息;如果验证成功,它会打印一条消息。这个例子展示了如何对单个结构体实例进行复杂的验证,包括多个字段的必填性、格式和长度限制。
评论已关闭