0Pricing
Go Academy · Aula

Bibliotecas de validação

Valide structs com tags

Bibliotecas de validação é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.

Por que validar estruturas

Antes de usar dados recebidos (de um formulário ou de uma API), muitas vezes é necessário verificá-los: campos obrigatórios, e-mail válido e intervalos de valores. As bibliotecas de validação automatizam esse processo usando tags de estrutura.

A tag validate

Bibliotecas populares, como go-playground/validator, leem uma tag validate que descreve regras para cada campo.

Um campo pode conter validate:"required,email".

Uma dependência externa

As bibliotecas de validação são pacotes de terceiros, não fazem parte da biblioteca padrão. Você as adiciona com go get github.com/go-playground/validator/v10. Elas não podem ser executadas em um trecho autônomo aqui.

Definindo regras

A tag validate de cada campo lista regras separadas por vírgulas. Regras comuns: required, email, min, max, len.

Estrutura de exemplo

Uma estrutura típica com validação. (Conceitual; requer o pacote de validação para ser executada.)

type SignupForm struct {
	Email    string "validate:\"required,email\""
	Password string "validate:\"required,min=8\""
	Age      int    "validate:\"gte=18,lte=120\""
}

Executando a validação

Você cria uma instância do validador e chama Validate.Struct(form). Ele retorna um erro se alguma regra falhar, ou nil se todas forem satisfeitas.

import "github.com/go-playground/validator/v10"

var validate = validator.New()

func check(f SignupForm) error {
	return validate.Struct(f)
}

Lendo os erros

Em caso de falha, o erro retornado pode ser convertido para validator.ValidationErrors, uma fatia que descreve cada regra violada: qual campo e qual restrição falharam.

Regras integradas comuns

Entre as regras úteis estão:

  • required - não pode ter valor zero
  • email - formato de e-mail válido
  • min / max - limites de comprimento ou numéricos
  • gte / lte - comparações numéricas
  • oneof - deve ser um dos valores de uma lista

Validando estruturas aninhadas

Os validadores percorrem automaticamente as estruturas aninhadas de forma recursiva. Um campo que também seja uma estrutura tem suas próprias regras verificadas, de modo que grafos inteiros de objetos sejam validados em uma única chamada.

Por que usar uma biblioteca

Escrever manualmente a validação de cada campo é trabalhoso e propenso a erros. A validação orientada por tags mantém as regras declarativas, junto aos campos e consistentes em todo o aplicativo.

Alternativa manual

Em casos simples, você pode validar manualmente sem uma biblioteca; para muitos campos e regras complexas, uma biblioteca é melhor. Isso funciona em qualquer lugar, pois usa apenas a biblioteca padrão.

package main

import (
	"errors"
	"fmt"
	"strings"
)

func validateEmail(e string) error {
	if !strings.Contains(e, "@") {
		return errors.New("invalid email")
	}
	return nil
}

func main() {
	fmt.Println(validateEmail("bad"))
	fmt.Println(validateEmail("a@b.com"))
}

Verificação rápida

Como uma biblioteca de validação, como go-playground/validator, sabe quais regras aplicar a cada campo?

Recapitulação

As bibliotecas de validação:

  • Leem uma tag validate para aplicar regras
  • São de terceiros (por exemplo, go-playground/validator) e são adicionadas por meio de go get
  • Retornam erros que listam cada regra que falhou
  • Permitem validar manualmente os casos simples

Perguntas Frequentes

A aula “Bibliotecas de validação” é grátis?

Sim — o texto completo de “Bibliotecas de validação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.

O que vou aprender em “Bibliotecas de validação”?

Valide structs com tags Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Go Academy?

Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Bibliotecas de validação”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Go Academy?

Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O que são tags de structs
  2. Tags JSON
  3. Bibliotecas de validação
  4. Análise personalizada de tags
← Voltar para Go Academy