Executando verificação de segurança...
5

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.

Carregando publicação patrocinada...
2
1

Eu ainda não postei no Reddit, mas é possível que alguém já tenha feito algo parecido, já que validação é um tema comum. Acho que vou aproveitar a oportunidade e criar um post por lá. Muito obrigado pela estrela! Fico muito feliz, especialmente por ser meu primeiro projeto em Go!