0Pricing
Go Academy · Leçon

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&nbsp;: 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

  1. Créer un serveur HTTP
  2. Routage et paramètres de chemin
  3. Modèle des intergiciels
  4. Arrêt progressif
← Retour à Go Academy