Enrutamiento y parámetros de ruta
Registro de handlers y análisis de parámetros de URL
Enrutamiento y parámetros de ruta es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.
Limitaciones del mux estándar
El http.ServeMux predeterminado no admite parámetros de ruta (por ejemplo, /users/{id}) ni enrutamiento basado en métodos. Go 1.22 añadió compatibilidad mejorada con patrones.
Patrones mejorados en Go 1.22
A partir de Go 1.22, ServeMux admite prefijos de método y parámetros de ruta:
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") extrae un segmento con nombre del patrón de URL (Go 1.22 o posterior).
// Pattern: "GET /products/{category}/{id}"
category := r.PathValue("category")
id := r.PathValue("id")Análisis manual de rutas
Para Go < 1.22 o reglas complejas, extraiga los segmentos de la ruta con strings.Split(r.URL.Path, "/"):
parts := strings.Split(strings.Trim(r.URL.Path, "/"), "/")
// /users/42 → ["users", "42"]Enrutamiento por método
Use un switch sobre r.Method para implementar la lógica de cada método dentro de un único controlador:
switch r.Method {
case http.MethodGet:
getHandler(w, r)
case http.MethodPost:
createHandler(w, r)
default:
w.WriteHeader(http.StatusMethodNotAllowed)
}Enrutadores de terceros populares
Bibliotecas como gorilla/mux, chi y httprouter ofrecen un enrutamiento más completo: restricciones mediante expresiones regulares, grupos con nombre, cadenas de middleware y subenrutadores.
Enrutador chi
chi es un enrutador ligero e idiomático compatible con los controladores de net/http:
r := chi.NewRouter()
r.Get("/users/{id}", getUser)
http.ListenAndServe(":8080", r)Parámetros de consulta
Lea los parámetros de consulta desde r.URL.Query(), que devuelve un mapa url.Values:
page := r.URL.Query().Get("page")
if page == "" { page = "1" }Comodín y coincidencia global
En los patrones de Go 1.22, {name...} es un comodín que coincide con el resto de la ruta:
mux.HandleFunc("/static/{path...}", serveStatic)Rutas anidadas
Agrupe las rutas relacionadas con un subenrutador o registrando controladores con un prefijo común. El r.Route de chi crea un subenrutador para un prefijo.
Redirección de la barra final
http.ServeMux redirige automáticamente /path/ a /path o viceversa. Para desactivarlo, elimine las barras finales en un middleware antes de que el mux reciba la solicitud.
Comprobación rápida
En Go 1.22 o posterior, ¿cómo se extrae el segmento {id} de un patrón de URL coincidente?
Resumen: enrutamiento y parámetros de ruta
Puntos clave:
- Go 1.22: prefijo de método + parámetros de ruta {name} en ServeMux
- r.PathValue("name") extrae segmentos con nombre
- Switch de método para la lógica específica de cada método
- Enrutadores de terceros (chi, gorilla/mux) para enrutamientos complejos
Aprende Go con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 51
- Lecciones
- 203
Preguntas frecuentes
¿La lección «Enrutamiento y parámetros de ruta» es gratis?
Sí — el texto completo de «Enrutamiento y parámetros de ruta» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Enrutamiento y parámetros de ruta»?
Registro de handlers y análisis de parámetros de URL Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Go Academy?
No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Enrutamiento y parámetros de ruta»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Go Academy?
Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Creación de un servidor HTTP
- Enrutamiento y parámetros de ruta
- Patrón de middleware
- Apagado ordenado