Gin para Go: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Gin y para qué sirve?

\n\n

Gin es un framework web de alto rendimiento para el lenguaje de programación Go, escrito en Go puro sin dependencias externas. Proporciona a los desarrolladores un conjunto de herramientas minimalista pero potente para crear API REST, aplicaciones web y microservicios. Las principales razones para elegir Gin son:

\n\n
    \n
  • Velocidad: Gin utiliza su propio enrutador basado en árbol (Radix tree), lo que lo convierte en uno de los frameworks más rápidos para Go. Es de 2 a 5 veces más rápido que el estándar net/http.
  • \n
  • Simplicidad: La API es intuitiva, con código mínimo para iniciar un servidor.
  • \n
  • Middleware: Soporte integrado para cadenas de middleware para registro, autenticación, CORS, etc.
  • \n
  • Validación: Potente sistema de validación de solicitudes (binding) con soporte para estructuras.
  • \n
  • Rendimiento: Bajo consumo de memoria y alto rendimiento.
  • \n
  • Comunidad: Gran comunidad, numerosos middleware y complementos listos para usar.
  • \n
\n\n

Gin es ideal para: crear API RESTful, microservicios, backend para aplicaciones SPA, servidores proxy y cualquier aplicación HTTP donde la velocidad sea importante.

\n\n

Instalación

\n\n

La instalación de Gin se realiza a través del gestor de paquetes estándar de Go. Asegúrese de tener instalado Go versión 1.13 o superior.

\n\n
# Inicialización del módulo (si aún no se ha hecho)\ngo mod init myapp\n\n# Instalación de Gin\ngo get -u github.com/gin-gonic/gin
\n\n

Después de ejecutar el comando, Gin se agregará a go.mod y go.sum. Ahora puede importarlo en su código:

\n\n
import "github.com/gin-gonic/gin"
\n\n

Inicio rápido: primer servidor con Gin

\n\n

Cree un archivo main.go y escriba un servidor HTTP simple:

\n\n
package main\n\nimport (\n    "net/http"\n    "github.com/gin-gonic/gin"\n)\n\nfunc main() {\n    // Creamos un enrutador con middleware por defecto (logger + recovery)\n    r := gin.Default()\n\n    // Definimos la ruta GET /\n    r.GET("/", func(c *gin.Context) {\n        c.JSON(http.StatusOK, gin.H{\n            "message": "Hello, Gin!",\n        })\n    })\n\n    // Iniciamos el servidor en el puerto 8080\n    r.Run(":8080")\n}
\n\n

Ejecute la aplicación:

\n\n
go run main.go
\n\n

Ahora abra el navegador y vaya a http://localhost:8080/. Verá una respuesta JSON: {"message":"Hello, Gin!"}.

\n\n

Métodos y funciones principales de Gin

\n\n

A continuación se presentan 10 métodos y funciones clave de Gin con descripción detallada y ejemplos.

\n\n

1. gin.Default()

\n

Qué hace: Crea una nueva instancia del enrutador Gin con dos middleware integrados: Logger (registro de solicitudes) y Recovery (recuperación tras pánico).

\n

Parámetros: Ninguno.

\n

Ejemplo:

\n
r := gin.Default()
\n\n

2. r.GET() / r.POST() / r.PUT() / r.DELETE()

\n

Qué hace: Define un manejador para el método HTTP y la ruta correspondientes.

\n

Parámetros:

\n
    \n
  • relativePath (string) — ruta de la ruta (ej. "/users/:id")
  • \n
  • handlers (...HandlerFunc) — una o más funciones manejadoras
  • \n
\n

Ejemplo:

\n
r.GET("/users", func(c *gin.Context) {\n    c.JSON(200, gin.H{"users": []string{"Alice", "Bob"}})\n})\n\nr.POST("/users", func(c *gin.Context) {\n    // Creación de usuario\n    c.JSON(201, gin.H{"status": "created"})\n})
\n\n

3. c.JSON()

\n

Qué hace: Envía al cliente una respuesta JSON con el código de estado HTTP especificado.

\n

Parámetros:

\n
    \n
  • code (int) — código de estado HTTP (ej.

Recommendations