Documentação
Gin é um framework web HTTP de alto desempenho escrito em Go. Ele fornece uma API semelhante ao Martini, mas com desempenho significativamente melhor — até 40 vezes mais rápido — graças ao httprouter. O Gin foi projetado para construir APIs REST, aplicações web e microsserviços onde velocidade e produtividade do desenvolvedor são essenciais.
Por que escolher o Gin?
O Gin combina a simplicidade do roteamento no estilo Express.js com as características de desempenho do Go, tornando-o ideal para:
- Construir APIs REST de alta vazão
- Desenvolver microsserviços que precisam lidar com muitas requisições simultâneas
- Criar aplicações web que exigem tempos de resposta rápidos
- Prototipar serviços web rapidamente com o mínimo de código repetitivo
Principais recursos do Gin:
- Roteador sem alocação - Roteamento extremamente eficiente em memória, sem alocações no heap
- Alto desempenho - Benchmarks mostram velocidade superior em comparação com outros frameworks web em Go
- Suporte a middleware - Sistema extensível de middleware para autenticação, logging, CORS, etc.
- À prova de falhas - Middleware de recuperação integrado que evita que panics derrubem seu servidor
- Validação de JSON - Binding e validação automática de JSON em requisições/respostas
- Agrupamento de rotas - Organize rotas relacionadas e aplique middleware comum
- Gerenciamento de erros - Tratamento e logging centralizado de erros
- Renderização integrada - Suporte para JSON, XML, templates HTML e mais
- Extensível - Grande ecossistema de middleware e plugins da comunidade
Primeiros Passos
Pré-requisitos
- Versão do Go: O Gin requer Go versão 1.25 ou superior
- Conhecimento básico de Go: Familiaridade com a sintaxe do Go e gerenciamento de pacotes é útil
Instalação
Com o suporte a módulos do Go, basta importar o Gin no seu código e o Go irá buscá-lo automaticamente durante o build:
import "github.com/gin-gonic/gin"Sua Primeira Aplicação Gin
Aqui está um exemplo completo que demonstra a simplicidade do Gin:
package main
import ( "net/http"
"github.com/gin-gonic/gin")
func main() { // Create a Gin router with default middleware (logger and recovery) r := gin.Default()
// Define a simple GET endpoint r.GET("/ping", func(c *gin.Context) { // Return JSON response c.JSON(http.StatusOK, gin.H{ "message": "pong", }) })
// Start server on port 8080 (default) // Server will listen on 0.0.0.0:8080 (localhost:8080 on Windows) r.Run()}Executando a aplicação:
-
Salve o código acima como
main.go -
Execute a aplicação:
Terminal window go run main.go -
Abra seu navegador e acesse
http://localhost:8080/ping -
Você deverá ver:
{"message":"pong"}
O que este exemplo demonstra:
- Criação de um roteador Gin com middleware padrão
- Definição de endpoints HTTP com funções handler simples
- Retorno de respostas JSON
- Inicialização de um servidor HTTP
Próximos Passos
Após executar sua primeira aplicação Gin, explore estes recursos para aprender mais:
Recursos de Aprendizado
- Guia de Início Rápido do Gin - Tutorial completo com exemplos de API e configurações de build
- Repositório de Exemplos - Exemplos prontos para execução demonstrando diversos casos de uso do Gin:
- Desenvolvimento de API REST
- Autenticação e middleware
- Upload e download de arquivos
- Conexões WebSocket
- Renderização de templates
Tutoriais Oficiais
Ecossistema de Middleware
O Gin possui um rico ecossistema de middleware para necessidades comuns de desenvolvimento web. Explore middleware contribuído pela comunidade:
-
gin-contrib - Coleção oficial de middleware incluindo:
- Autenticação (JWT, Basic Auth, Sessões)
- CORS, Rate limiting, Compressão
- Logging, Métricas, Rastreamento
- Servir arquivos estáticos, Motores de template
-
gin-gonic/contrib - Middleware adicional da comunidade