0Pricing
Go Academy · Lezione

Routing e parametri del percorso

Registrare gli handler e analizzare i parametri dell'URL

Routing e parametri del percorso è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 2 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.

Limitazioni del mux standard

Il http.ServeMux predefinito non supporta i parametri di percorso, ad esempio /users/{id}, né il routing basato sui metodi. Go 1.22 ha aggiunto un supporto avanzato per i pattern.

Pattern avanzati di Go 1.22

A partire da Go 1.22, ServeMux supporta i prefissi dei metodi e i parametri di percorso:

mux.HandleFunc("GET /users/{id}", func(w http.ResponseWriter, r *http.Request) {
    id := r.PathValue("id")
    fmt.Fprintln(w, "user:", id)
})

r.PathValue

r.PathValue("name") estrae un segmento denominato dal pattern dell'URL (Go 1.22+).

// Pattern: "GET /products/{category}/{id}"
category := r.PathValue("category")
id := r.PathValue("id")

Analisi manuale del percorso

Per Go < 1.22 o per regole complesse, estragga i segmenti del percorso con strings.Split(r.URL.Path, "/"):

parts := strings.Split(strings.Trim(r.URL.Path, "/"), "/")
// /users/42 → ["users", "42"]

Routing basato sui metodi

Utilizzi uno switch su r.Method per la logica specifica di ciascun metodo all'interno di un singolo gestore:

switch r.Method {
case http.MethodGet:
    getHandler(w, r)
case http.MethodPost:
    createHandler(w, r)
default:
    w.WriteHeader(http.StatusMethodNotAllowed)
}

Router di terze parti più diffusi

Librerie come gorilla/mux, chi e httprouter offrono un routing più ricco: vincoli con espressioni regolari, gruppi denominati, catene di middleware e subrouter.

Router chi

chi è un router leggero e idiomatico, compatibile con i gestori net/http:

r := chi.NewRouter()
r.Get("/users/{id}", getUser)
http.ListenAndServe(":8080", r)

Parametri di query

Legga i parametri di query da r.URL.Query(), che restituisce una mappa url.Values:

page := r.URL.Query().Get("page")
if page == "" { page = "1" }

Wildcard e catch-all

Nei pattern di Go 1.22, {name...} è un carattere jolly che corrisponde al resto del percorso:

mux.HandleFunc("/static/{path...}", serveStatic)

Route annidate

Raggruppi le route correlate con un subrouter oppure registrando i gestori con un prefisso comune. Il r.Route di chi crea un subrouter per un prefisso.

Reindirizzamento della barra finale

http.ServeMux reindirizza automaticamente /path/ a /path o viceversa. Per disabilitare questo comportamento, rimuova le barre finali in un middleware prima che il mux riceva la richiesta.

Verifica rapida

In Go 1.22+, come si estrae il segmento {id} da un pattern dell'URL corrispondente?

Riepilogo: routing e parametri di percorso

Punti chiave:

  • Go 1.22: prefisso del metodo + parametri di percorso {name} in ServeMux
  • r.PathValue("name") estrae i segmenti denominati
  • Switch sul metodo per la logica specifica di ciascun metodo
  • Router di terze parti, come chi e gorilla/mux, per il routing complesso

Domande Frequenti

La lezione «Routing e parametri del percorso» è gratuita?

Sì — il testo completo di «Routing e parametri del percorso» è 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 «Routing e parametri del percorso»?

Registrare gli handler e analizzare i parametri dell'URL 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 2 di 4.

Quanto tempo richiede la lezione «Routing e parametri del percorso»?

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. Creare un server HTTP
  2. Routing e parametri del percorso
  3. Modello middleware
  4. Arresto graduale
← Torna a Go Academy