Gin para Go: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é Gin e para que serve?

\n\n

Gin é um framework web de alto desempenho para a linguagem de programação Go, escrito em Go puro sem dependências externas. Ele fornece aos desenvolvedores um conjunto de ferramentas minimalista, mas poderoso, para criar APIs REST, aplicações web e microsserviços. As principais razões para escolher Gin:

\n\n
    \n
  • Velocidade: Gin usa seu próprio roteador baseado em árvore (Radix tree), tornando-o um dos frameworks mais rápidos para Go. Ele é 2 a 5 vezes mais rápido que o padrão net/http.
  • \n
  • Simplicidade: API intuitiva, código mínimo para iniciar o servidor.
  • \n
  • Middleware: Suporte integrado para cadeias de middleware para logging, autenticação, CORS, etc.
  • \n
  • Validação: Sistema poderoso de validação de requisições (binding) com suporte a estruturas.
  • \n
  • Desempenho: Baixo consumo de memória e alta taxa de transferência.
  • \n
  • Comunidade: Comunidade enorme, muitos middlewares e plugins prontos.
  • \n
\n\n

Gin é ideal para: criar APIs RESTful, microsserviços, backend para aplicações SPA, servidores proxy e qualquer aplicação HTTP onde a velocidade é importante.

\n\n

Instalação

\n\n

A instalação do Gin é feita através do gerenciador de pacotes padrão do Go. Certifique-se de ter o Go versão 1.13 ou superior instalado.

\n\n
# Inicialização do módulo (se ainda não foi feito)\ngo mod init myapp\n\n# Instalação do Gin\ngo get -u github.com/gin-gonic/gin
\n\n

Após executar o comando, Gin será adicionado aos arquivos go.mod e go.sum. Agora você pode importá-lo no seu código:

\n\n
import "github.com/gin-gonic/gin"
\n\n

Início rápido: primeiro servidor com Gin

\n\n

Crie um arquivo main.go e escreva um servidor HTTP simples:

\n\n
package main\n\nimport (\n    "net/http"\n    "github.com/gin-gonic/gin"\n)\n\nfunc main() {\n    // Cria um roteador com middleware padrão (logger + recovery)\n    r := gin.Default()\n\n    // Define a rota GET /\n    r.GET("/", func(c *gin.Context) {\n        c.JSON(http.StatusOK, gin.H{\n            "message": "Olá, Gin!",\n        })\n    })\n\n    // Inicia o servidor na porta 8080\n    r.Run(":8080")\n}
\n\n

Execute a aplicação:

\n\n
go run main.go
\n\n

Agora abra o navegador e acesse http://localhost:8080/. Você verá a resposta JSON: {"message":"Olá, Gin!"}.

\n\n

Principais métodos e funções do Gin

\n\n

Abaixo estão 10 métodos e funções principais do Gin com descrição detalhada e exemplos.

\n\n

1. gin.Default()

\n

O que faz: Cria uma nova instância do roteador Gin com dois middlewares integrados: Logger (logging de requisições) e Recovery (recuperação de pânicos).

\n

Parâmetros: Nenhum.

\n

Exemplo:

\n
r := gin.Default()
\n\n

2. r.GET() / r.POST() / r.PUT() / r.DELETE()

\n

O que faz: Define um manipulador para o método HTTP e caminho correspondentes.

\n

Parâmetros:

\n
    \n
  • relativePath (string) — caminho da rota (ex.: "/users/:id")
  • \n
  • handlers (...HandlerFunc) — uma ou mais funções manipuladoras
  • \n
\n

Exemplo:

\n
r.GET("/users", func(c *gin.Context) {\n    c.JSON(200, gin.H{"users": []string{"Alice", "Bob"}})\n})\n\nr.POST("/users", func(c *gin.Context) {\n    // Criar usuário\n    c.JSON(201, gin.H{"status": "criado"})\n})
\n\n

3. c.JSON()

\n

O que faz: Envia uma resposta JSON para o cliente com o status HTTP especificado.

\n

Parâmetros:

\n
    \n
  • code (int) — código de status HTTP (exemplo

Recommendations