Router Gin y grupos de rutas
Configuración del engine, grupos y parámetros de ruta
Router Gin y grupos de rutas es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 1 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.
¿Qué es Gin?
Gin es un framework web HTTP de alto rendimiento para Go. Utiliza un enrutador basado en un árbol radix, proporciona compatibilidad con middleware, vinculación de datos JSON y validación, por lo que es popular para las API REST.
Instalación y configuración básica
Importe y cree un motor de Gin:
go get github.com/gin-gonic/gin
package main
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{"message": "pong"})
})
r.Run(":8080")
}gin.Default frente a gin.New
gin.Default() incluye el middleware Logger y Recovery. gin.New() crea un motor sin middleware; úselo cuando necesite tener un control total sobre el middleware.
Métodos de ruta
Registre rutas para los métodos HTTP GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD y Any:
r.GET("/users", listUsers)
r.POST("/users", createUser)
r.PUT("/users/:id", updateUser)
r.DELETE("/users/:id", deleteUser)Parámetros de ruta
Extraiga los parámetros de ruta con c.Param("name"):
r.GET("/users/:id", func(c *gin.Context) {
id := c.Param("id")
c.JSON(200, gin.H{"id": id})
})Parámetros de consulta
Lea los parámetros de consulta con c.Query y c.DefaultQuery:
page := c.DefaultQuery("page", "1")
limit := c.Query("limit") // "" if absentGrupos de rutas
Agrupe las rutas relacionadas bajo un prefijo común con r.Group. El middleware aplicado al grupo afecta a todas las rutas que contiene:
api := r.Group("/api/v1")
{
api.GET("/users", listUsers)
api.POST("/users", createUser)
api.PUT("/users/:id", updateUser)
}Grupos anidados
Los grupos pueden anidarse para lograr una organización más precisa:
admin := r.Group("/admin")
admin.Use(AdminAuth())
{
admin.GET("/stats", getStats)
admin.DELETE("/users/:id", deleteUser)
}Ruta inexistente o método no permitido
Gestione correctamente las respuestas 404 y 405 con r.NoRoute y r.NoMethod:
r.NoRoute(func(c *gin.Context) {
c.JSON(404, gin.H{"error": "not found"})
})Archivos estáticos
Sirva archivos estáticos desde un directorio:
r.Static("/static", "./public")
r.StaticFile("/favicon.ico", "./favicon.ico")El motor como http.Handler
El *gin.Engine de Gin implementa http.Handler, por lo que puede usarlo con un http.Server personalizado para configurar los tiempos de espera:
srv := &http.Server{Addr: ":8080", Handler: r, ReadTimeout: 5*time.Second}
srv.ListenAndServe()Comprobación rápida
¿Qué ventaja ofrece usar grupos de rutas en Gin?
Recapitulación: enrutador y grupos de Gin
Puntos clave:
- gin.Default() incluye Logger y Recovery; use gin.New() para una configuración personalizada
- c.Param para los parámetros de ruta; c.Query para los parámetros de consulta
- r.Group("/prefix") para compartir un prefijo y middleware
- Gin implementa http.Handler; úselo con un http.Server personalizado
Preguntas frecuentes
¿La lección «Router Gin y grupos de rutas» es gratis?
Sí — el texto completo de «Router Gin y grupos de rutas» 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 «Router Gin y grupos de rutas»?
Configuración del engine, grupos y parámetros de ruta 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 1 de 4.
¿Cuánto tiempo toma la lección «Router Gin y grupos de rutas»?
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
- Router Gin y grupos de rutas
- Vinculación y validación de solicitudes
- Helpers de respuesta y códigos de estado
- Middleware de Gin: autenticación y registro