Apresentando o Validator: Meu Primeiro Projeto Open Source em Go
Estou muito feliz em compartilhar meu primeiro projeto open source em Go!
Sempre achei repetitivo e cansativo validar structs manualmente em Go. Pensando nisso, criei um pacote simples e reutilizável que facilita muito esse trabalho. Ele permite validar campos de structs de forma eficiente, sem depender de tags e com total flexibilidade para criar suas próprias regras personalizadas.
Aqui está um exemplo básico de como ele funciona:
type User struct {
Name string
Email string
}
func New(name, email string) (*User, []error) {
user := &User{name, email}
if errs := user.Validate(); len(errs) > 0 {
return nil, errs
}
return user, nil
}
func (u *User) Validate() []error {
v := validator.New()
v.Add("Name", rule.Rules{
rule.Required(),
rule.MinLength(3),
})
v.Add("Email", rule.Rules{
rule.Required(),
rule.ValidEmail(),
})
return v.Validate(*u)
}
Com isso, você pode validar seus dados de forma simples e organizada, centralizando todas as regras de validação e evitando duplicação de código.
Estou muito empolgado por ter iniciado esse projeto e espero que ele seja útil para outros desenvolvedores que também estão começando em Go. Você pode conferir todos os detalhes no repositório no GitHub. Ficarei feliz com qualquer feedback ou contribuição para melhorar ainda mais esse projeto.