O que é Gin e para que serve?
\n\nGin é 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
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\nInstalação
\n\nA 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\nApós executar o comando, Gin será adicionado aos arquivos go.mod e go.sum. Agora você pode importá-lo no seu código:
import "github.com/gin-gonic/gin"\n\nInício rápido: primeiro servidor com Gin
\n\nCrie um arquivo main.go e escreva um servidor HTTP simples:
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\nExecute a aplicação:
\n\ngo run main.go\n\nAgora abra o navegador e acesse http://localhost:8080/. Você verá a resposta JSON: {"message":"Olá, Gin!"}.
Principais métodos e funções do Gin
\n\nAbaixo estão 10 métodos e funções principais do Gin com descrição detalhada e exemplos.
\n\n1. gin.Default()
\nO 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).
\nParâmetros: Nenhum.
\nExemplo:
\nr := gin.Default()\n\n2. r.GET() / r.POST() / r.PUT() / r.DELETE()
\nO que faz: Define um manipulador para o método HTTP e caminho correspondentes.
\nParâmetros:
\n- \n
relativePath(string) — caminho da rota (ex.: "/users/:id") \nhandlers(...HandlerFunc) — uma ou mais funções manipuladoras \n
Exemplo:
\nr.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\n3. c.JSON()
\nO que faz: Envia uma resposta JSON para o cliente com o status HTTP especificado.
\nParâmetros:
\n- \n
code(int) — código de status HTTP (exemplo