我试图了解 OpenAPI 规范如何使用 go 语言工作。
我创建了 yaml 文件,我想将其生成到我的 go 代码中以用于请求和响应结构。
但是有些结构需要自定义验证器。于是就这样写了:
var validate *validator.Validate
func init() {
validate = validator.New()
if err := validate.RegisterValidation("email", validateEmail); err != nil {
logger.Fatalf("Couldn't register email validator, err=%v", err)
}
}
func validateEmail(fl validator.FieldLevel) bool {
email := fl.Field().String()
emailRegex := `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`
return regexp.MustCompile(emailRegex).MatchString(email)
}
我不能用这样的验证器标签编写结构
type somStruct struct {
Email string `validate:"email"`
}
是否可以添加到将生成到此类结构的 OpenAPI 描述?
您是否尝试添加
format
关键字? 我认为 openapi-generator-cli 使用格式注释
components:
schemas:
User:
type: object
properties:
email:
type: string
format: email