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
- Creare un server HTTP
- Routing e parametri del percorso
- Modello middleware
- Arresto graduale