0Pricing
Go Academy · Lezione

Router Gin e gruppi di route

Configurazione del motore, gruppi e parametri del percorso

Router Gin e gruppi di route è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.

Che cos'è Gin?

Gin è un framework web HTTP ad alte prestazioni per Go. Utilizza un router basato su un albero radix, offre il supporto al middleware, il binding JSON e la convalida, caratteristiche che lo rendono molto diffuso per le API REST.

Installazione e configurazione di base

Importi e crei un motore 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 rispetto a gin.New

gin.Default() include i middleware Logger e Recovery. gin.New() crea un motore senza middleware: lo utilizzi quando desidera avere il pieno controllo sui middleware.

Metodi delle route

Registri le route per i metodi 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)

Parametri del percorso

Estragga i parametri del percorso con c.Param("name"):

r.GET("/users/:id", func(c *gin.Context) {
    id := c.Param("id")
    c.JSON(200, gin.H{"id": id})
})

Parametri di query

Legga i parametri di query con c.Query e c.DefaultQuery:

page := c.DefaultQuery("page", "1")
limit := c.Query("limit") // "" if absent

Gruppi di route

Raggruppi le route correlate sotto un prefisso comune con r.Group. Il middleware applicato al gruppo influisce su tutte le route che ne fanno parte:

api := r.Group("/api/v1")
{
    api.GET("/users", listUsers)
    api.POST("/users", createUser)
    api.PUT("/users/:id", updateUser)
}

Gruppi annidati

I gruppi possono essere annidati per un'organizzazione più dettagliata:

admin := r.Group("/admin")
admin.Use(AdminAuth())
{
    admin.GET("/stats", getStats)
    admin.DELETE("/users/:id", deleteUser)
}

Nessuna route o metodo non consentito

Gestisca in modo appropriato gli errori 404 e 405 con r.NoRoute e r.NoMethod:

r.NoRoute(func(c *gin.Context) {
    c.JSON(404, gin.H{"error": "not found"})
})

File statici

Serva i file statici da una directory:

r.Static("/static", "./public")
r.StaticFile("/favicon.ico", "./favicon.ico")

Engine come http.Handler

*gin.Engine di Gin implementa http.Handler, quindi può essere utilizzato con un http.Server personalizzato per configurare i timeout:

srv := &http.Server{Addr: ":8080", Handler: r, ReadTimeout: 5*time.Second}
srv.ListenAndServe()

Verifica rapida

Qual è il vantaggio di utilizzare i gruppi di route in Gin?

Riepilogo: router e gruppi di Gin

Punti chiave:

  • gin.Default() include Logger+Recovery; gin.New() serve per una configurazione personalizzata
  • c.Param per i parametri del percorso; c.Query per i parametri di query
  • r.Group("/prefix") per condividere prefisso e middleware
  • Gin implementa http.Handler: lo utilizzi con un http.Server personalizzato

Domande Frequenti

La lezione «Router Gin e gruppi di route» è gratuita?

Sì — il testo completo di «Router Gin e gruppi di route» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.

Cosa imparerò in «Router Gin e gruppi di route»?

Configurazione del motore, gruppi e parametri del percorso Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Go Academy?

Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Router Gin e gruppi di route»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Go Academy?

Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Router Gin e gruppi di route
  2. Binding e validazione delle richieste
  3. Helper per le risposte e codici di stato
  4. Middleware Gin: autenticazione e logging
← Torna a Go Academy