OpenAPI的字段校验规则可以通过JSON Schema来定义,而golang validator包提供了一种方便的方式来应用这些规则。以下是一些常见的OpenAPI规则和它们对应的golang validator函数。
- required
该规则要求一个字段必须存在且不能为空。
对应的validator函数是Required(),例如:
type User struct {
Name string `json:"name" validate:"required"`
}
- minLength / maxLength
该规则要求一个字符串类型的字段的长度必须在指定范围内。
对应的validator函数是MinLength()和MaxLength(),例如:
type User struct {
Name string `json:"name" validate:"min=2,max=20"`
}
- minimum / maximum
该规则要求一个数字类型的字段的值必须在指定范围内。
对应的validator函数是Min()和Max(),例如:
type User struct {
Age int `json:"age" validate:"min=18,max=99"`
}
- pattern
该规则要求一个字符串类型的字段必须符合指定正则表达式。
对应的validator函数是Regexp(),例如:
type User struct {
Email string `json:"email" validate:"regexp=[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$"`
}
- format
该规则要求一个字符串类型的字段必须符合指定格式(如日期时间、URL等)。
对应的validator函数是Matches(),例如:
type User struct {
BirthDate time.Time `json:"birth_date" validate:"datetime=2006-01-02"`
}
以上是一些常见的OpenAPI规则和它们对应的golang validator函数。需要注意的是,golang validator支持的规则更多,可以参考文档了解更多信息。