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
Seção intitulada “Primeiros Passos”Pré-requisitos
Seção intitulada “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
Seção intitulada “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
Seção intitulada “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
Seção intitulada “Próximos Passos”Após executar sua primeira aplicação Gin, explore estes recursos para aprender mais:
Recursos de Aprendizado
Seção intitulada “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
Seção intitulada “Tutoriais Oficiais”Ecossistema de Middleware
Seção intitulada “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