Routage et paramètres de chemin
Enregistrer des gestionnaires et analyser les paramètres d’URL
Routage et paramètres de chemin est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.
Limites du mux standard
Le http.ServeMux par défaut ne prend pas en charge les paramètres de chemin (par exemple /users/{id}) ni le routage selon la méthode. Go 1.22 a ajouté la prise en charge de modèles améliorés.
Modèles améliorés de Go 1.22
À partir de Go 1.22, ServeMux prend en charge le préfixe de méthode et les paramètres de chemin :
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") extrait un segment nommé du modèle d’URL (Go 1.22 ou version ultérieure).
// Pattern: "GET /products/{category}/{id}"
category := r.PathValue("category")
id := r.PathValue("id")Analyse manuelle du chemin
Pour Go < 1.22 ou pour des règles complexes, extrayez les segments du chemin avec strings.Split(r.URL.Path, "/") :
parts := strings.Split(strings.Trim(r.URL.Path, "/"), "/")
// /users/42 → ["users", "42"]Routage selon la méthode
Utilisez un switch sur r.Method pour gérer chaque méthode dans un gestionnaire unique :
switch r.Method {
case http.MethodGet:
getHandler(w, r)
case http.MethodPost:
createHandler(w, r)
default:
w.WriteHeader(http.StatusMethodNotAllowed)
}Routeurs tiers populaires
Des bibliothèques comme gorilla/mux, chi et httprouter offrent un routage plus riche : contraintes par expressions régulières, groupes nommés, chaînes d’intergiciels et sous-routeurs.
Routeur chi
chi est un routeur léger et idiomatique, compatible avec les gestionnaires net/http :
r := chi.NewRouter()
r.Get("/users/{id}", getUser)
http.ListenAndServe(":8080", r)Paramètres de requête
Lisez les paramètres de requête avec r.URL.Query(), qui renvoie une map url.Values :
page := r.URL.Query().Get("page")
if page == "" { page = "1" }Caractère générique et correspondance globale
Dans les modèles de Go 1.22, {name...} est un caractère générique qui correspond au reste du chemin :
mux.HandleFunc("/static/{path...}", serveStatic)Routes imbriquées
Regroupez les routes associées avec un sous-routeur ou en enregistrant les gestionnaires avec un préfixe commun. Le r.Route de chi crée un sous-routeur pour un préfixe.
Redirection de la barre oblique finale
http.ServeMux redirige automatiquement /path/ vers /path, ou inversement. Pour désactiver ce comportement, supprimez les barres obliques finales dans un intergiciel avant que le mux ne reçoive la requête.
Vérification rapide
Dans Go 1.22 ou version ultérieure, comment extrayez-vous le segment {id} d’un modèle d’URL correspondant ?
Récapitulatif : routage et paramètres de chemin
Points clés :
- Go 1.22 : préfixe de méthode + paramètres de chemin {name} dans ServeMux
- r.PathValue("name") extrait les segments nommés
- Switch sur la méthode pour la logique propre à chaque méthode
- Routeurs tiers (chi, gorilla/mux) pour les routages complexes
Questions Fréquemment Posées
La leçon « Routage et paramètres de chemin » est-elle gratuite ?
Oui — le texte complet de « Routage et paramètres de chemin » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Routage et paramètres de chemin » ?
Enregistrer des gestionnaires et analyser les paramètres d’URL Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Go Academy ?
Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Routage et paramètres de chemin » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?
Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Créer un serveur HTTP
- Routage et paramètres de chemin
- Modèle des intergiciels
- Arrêt progressif