Roteador Gin e grupos de rotas
Configuração do Engine, grupos e parâmetros de caminho
Roteador Gin e grupos de rotas é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 1 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.
O que é o Gin?
Gin é uma estrutura de alto desempenho para aplicações web HTTP em Go. Ele utiliza um roteador baseado em árvore radix, oferece suporte a camadas intermediárias, vinculação de JSON e validação, o que o torna popular para APIs REST.
Instalação e configuração básica
Importe e crie um mecanismo do Gin:
go get github.com/gin-gonic/gin
package main
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{"message": "pong"})
})
r.Run(":8080")
}gin.Default em comparação com gin.New
gin.Default() inclui as camadas intermediárias Logger e Recovery. gin.New() cria um mecanismo sem camadas intermediárias; utilize-o quando quiser controle total sobre elas.
Métodos de rota
Registre rotas para métodos HTTP: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD e Any:
r.GET("/users", listUsers)
r.POST("/users", createUser)
r.PUT("/users/:id", updateUser)
r.DELETE("/users/:id", deleteUser)Parâmetros de caminho
Extraia parâmetros de caminho com c.Param("name"):
r.GET("/users/:id", func(c *gin.Context) {
id := c.Param("id")
c.JSON(200, gin.H{"id": id})
})Parâmetros de consulta
Leia parâmetros de consulta com c.Query e c.DefaultQuery:
page := c.DefaultQuery("page", "1")
limit := c.Query("limit") // "" if absentGrupos de rotas
Agrupe rotas relacionadas sob um prefixo comum com r.Group. A camada intermediária aplicada ao grupo afetará todas as rotas contidas nele:
api := r.Group("/api/v1")
{
api.GET("/users", listUsers)
api.POST("/users", createUser)
api.PUT("/users/:id", updateUser)
}Grupos aninhados
Os grupos podem ser aninhados para permitir uma organização mais detalhada:
admin := r.Group("/admin")
admin.Use(AdminAuth())
{
admin.GET("/stats", getStats)
admin.DELETE("/users/:id", deleteUser)
}Rota inexistente ou método não permitido
Trate os códigos 404 e 405 de maneira adequada com r.NoRoute e r.NoMethod:
r.NoRoute(func(c *gin.Context) {
c.JSON(404, gin.H{"error": "not found"})
})Arquivos estáticos
Disponibilize arquivos estáticos a partir de um diretório:
r.Static("/static", "./public")
r.StaticFile("/favicon.ico", "./favicon.ico")Engine como http.Handler
O *gin.Engine do Gin implementa http.Handler, portanto você pode utilizá-lo com um http.Server personalizado para configurar o tempo limite:
srv := &http.Server{Addr: ":8080", Handler: r, ReadTimeout: 5*time.Second}
srv.ListenAndServe()Verificação rápida
Qual é a vantagem de utilizar grupos de rotas no Gin?
Recapitulação: roteador e grupos do Gin
Pontos principais:
- gin.Default() inclui Logger+Recovery; gin.New() é indicado para uma configuração personalizada
- c.Param para parâmetros de caminho; c.Query para parâmetros de consulta
- r.Group("/prefix") para compartilhar prefixos e camadas intermediárias
- O Gin implementa http.Handler; utilize-o com um http.Server personalizado
Perguntas Frequentes
A aula “Roteador Gin e grupos de rotas” é grátis?
Sim — o texto completo de “Roteador Gin e grupos de rotas” é 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 “Roteador Gin e grupos de rotas”?
Configuração do Engine, grupos e parâmetros de caminho 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 1 de 4.
Quanto tempo leva a aula “Roteador Gin e grupos de rotas”?
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
- Roteador Gin e grupos de rotas
- Vinculação e validação de requisições
- Auxiliares de resposta e códigos de status
- Middleware do Gin: autenticação e logging