Validação de dados em Go com go-playground/validator
No desenvolvimento moderno em Go (Golang), a validação de dados de entrada é uma etapa crítica no processamento de requisições, formulários ou configurações. A biblioteca go-playground/validator é o padrão de facto para verificar structs, campos e objetos aninhados complexos. Ela fornece um conjunto poderoso de regras (tags) para validação, suporta mensagens de erro personalizadas, internacionalização e integração com web frameworks.
Por que a validação de dados é necessária?
A verificação manual de cada campo leva à duplicação de código e erros. O validator permite descrever as regras diretamente nas tags da struct, tornando o código limpo, declarativo e fácil de manter. Você pode verificar tipos, intervalos, obrigatoriedade de campos, formatos (email, URL, UUID) e até realizar comparações entre campos.
Instalação
Para instalar a biblioteca, execute o comando no terminal (requer Go 1.18+):
go get github.com/go-playground/validator/v10Em seguida, importe o pacote no seu código:
import "github.com/go-playground/validator/v10"Funcionalidades principais
- Tags de validação:
required,min,max,len,email,url,uuid,oneofe dezenas de outras. - Validadores personalizados: criação de regras próprias através de
RegisterValidation. - Structs aninhadas: verificação de campos dentro de objetos aninhados.
- Mensagens de erro: traduções para diferentes idiomas, personalização de texto.
- Validação em lote: verificação de arrays e slices.
Exemplo de código em Go (Golang)
package main
import ( "fmt" "github.com/go-playground/validator/v10")
// User representa uma struct com tags de validaçãotype User struct { Name string `validate:"required,min=2,max=50"` Email string `validate:"required,email"` Age int `validate:"gte=0,lte=130"` Role string `validate:"required,oneof=admin user guest"`}
func main() { validate := validator.New()
user := User{ Name: "A", Email: "invalid-email", Age: 200, Role: "superadmin", }
err := validate.Struct(user) if err != nil { for _, err := range err.(validator.ValidationErrors) { fmt.Printf("Campo '%s' falhou na validação: %s", err.Field(), err.Tag()) } } else { fmt.Println("Dados válidos!") }}Quando usar go-playground/validator?
Esta biblioteca é ideal para qualquer projeto em Go que exija uma verificação confiável de dados de entrada: REST API (junto com Gin, Echo, Chi), processamento de formulários, arquivos de configuração, parsing de CSV/JSON. Ela é especialmente útil em arquitetura de microsserviços, onde cada serviço deve garantir a correção dos dados na entrada.
Se você precisa de uma validação rápida, flexível e extensível sem escrever uma tonelada de condicionais — o go-playground/validator será sua melhor escolha.
Também na biblioteca
Configuração de aplicativos Swift (iOS/macOS): bibliotecas e ferramentas
TypeBox para TypeScript: guia completo com exemplos práticos
Tokens JWT em PHP: Guia Completo para Autenticação e Autorização
Trabalhando com S3 e armazenamentos em nuvem em C++: biblioteca AWS SDK para C++
Processamento de JSON em Kotlin: bibliotecas, parsing e serialização