Go Gin 常用的验证规则
· 阅读需 3 分钟
在 Gin 框架中,数据验证是通过集成的 go-playground/validator
包来实现的。这个包支持许多内置的验证规则,可以用于验证输入数据的各种条件。
常用规则
标签 | 描述 |
---|---|
required | 字段必须有值,不能为默认零值或空 |
len | 字段长度必须等于指定的值 |
min | 对于数值,最小值必须不小于指定值;对于字符串或数组,长度必须不小于指定值 |
max | 对于数值,最大值必须不大于指定值;对于字符串或数组,长度必须不大于指定值 |
eq | 字段值必须等于指定的值 |
ne | 字段值必须不等于指定的值 |
lt | 字段值必须小于指定的值 |
lte | 字段值必须小于或等于指定的值 |
gt | 字段值必须大于指定的值 |
gte | 字段值必须大于或等于指定的值 |
字段值必须是有效的电子邮件地址格式 | |
url | 字段值必须是有效的 URL 格式 |
alnum | 字段必须是字母数字字符 |
numeric | 字段必须是有效的数字 |
hexadecimal | 字段必须是十六进制格式 |
hexcolor | 字段必须是有效的十六进制颜色代码 |
rgb | 字段必须是有效的 RGB 颜色 |
rgba | 字段必须是有效的 RGBA 颜色 |
hsl | 字段必须是有效的 HSL 颜色 |
hsla | 字段必须是有效的 HSLA 颜色 |
e164 | 字段必须是有效的 E.164 格式的电话号码 |
oneof | 字段值必须是指定列表中的一个 |
uuid | 字段值必须是有效的 UUID |
uuid3 | 字段值必须是有效的 UUID3 格式 |
uuid4 | 字段值必须是有效的 UUID4 格式 |
uuid5 | 字段值必须是有效的 UUID5 格式 |
ascii | 字段值必须是 ASCII 字符 |
printascii | 字段值必须是可打印的 ASCII 字符 |
Gin 中使用验证规则
安装 Gin
go get -u github.com/gin-gonic/gin
使用验证规则
type LoginRequest struct {
Username string `form:"username" binding:"required"`
Password string `form:"password" binding:"required,min=6"`
}
处理请求:在你的路由处理函数中,使用 ShouldBind
、ShouldBindJSON
、ShouldBindQuery
等方法来绑定请求数据并触发验证
func login(c *gin.Context) {
var req LoginRequest
if err := c.ShouldBind(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
// 处理登录逻辑...
}