0Pricing
Go Academy · Aula

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 absent

Grupos 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

  1. Roteador Gin e grupos de rotas
  2. Vinculação e validação de requisições
  3. Auxiliares de resposta e códigos de status
  4. Middleware do Gin: autenticação e logging
← Voltar para Go Academy