Validação
O pacote validator integra go-playground/validator e é inicializado por colibri.InitializeApp().
Validar uma struct
package users
import (
"github.com/colibriproject-dev/colibri-sdk-go/pkg/base/validator"
)
type CreateUser struct {
Name string `validate:"required,min=2"`
Email string `validate:"required,email"`
CPF string `validate:"omitempty,cpf"`
}
func Validate(input CreateUser) error {
return validator.Struct(input)
}
Além das tags do go-playground/validator, o SDK registra:
| Tag | Validação |
|---|---|
cpf | CPF brasileiro |
cnpj | CNPJ brasileiro |
br-states | Sigla de uma unidade federativa |
br-postal-code | CEP brasileiro |
sort-direction | Direção de ordenação suportada |
Decodificar formulário
var input CreateUser
if err := validator.FormDecode(&input, values); err != nil {
return err
}
return validator.Struct(input)
Validação personalizada
validator.RegisterCustomValidation("username", func(fl playValidator.FieldLevel) bool {
return len(fl.Field().String()) >= 3
})
Registre validações personalizadas depois de InitializeApp() e antes de processar requisições.