Documentación
Gin es un framework web HTTP de alto rendimiento escrito en Go. Proporciona una API similar a Martini pero con un rendimiento significativamente mejor —hasta 40 veces más rápido— gracias a httprouter. Gin está diseñado para construir APIs REST, aplicaciones web y microservicios donde la velocidad y la productividad del desarrollador son esenciales.
¿Por qué elegir Gin?
Gin combina la simplicidad del enrutamiento estilo Express.js con las características de rendimiento de Go, haciéndolo ideal para:
- Construir APIs REST de alto rendimiento
- Desarrollar microservicios que necesitan manejar muchas solicitudes concurrentes
- Crear aplicaciones web que requieren tiempos de respuesta rápidos
- Prototipar servicios web rápidamente con código mínimo
Características clave de Gin:
- Enrutador sin asignaciones - Enrutamiento extremadamente eficiente en memoria sin asignaciones en el heap
- Alto rendimiento - Los benchmarks muestran una velocidad superior en comparación con otros frameworks web de Go
- Soporte de middleware - Sistema de middleware extensible para autenticación, logging, CORS, etc.
- Libre de fallos - Middleware de recuperación incorporado que evita que los panics detengan tu servidor
- Validación JSON - Enlace y validación automática de JSON en solicitudes/respuestas
- Agrupación de rutas - Organiza rutas relacionadas y aplica middleware común
- Gestión de errores - Manejo y registro centralizado de errores
- Renderizado incorporado - Soporte para JSON, XML, plantillas HTML y más
- Extensible - Gran ecosistema de middleware y plugins de la comunidad
Primeros pasos
Sección titulada «Primeros pasos»Requisitos previos
Sección titulada «Requisitos previos»- Versión de Go: Gin requiere Go versión 1.25 o superior
- Conocimiento básico de Go: Es útil tener familiaridad con la sintaxis de Go y la gestión de paquetes
Instalación
Sección titulada «Instalación»Con el soporte de módulos de Go, simplemente importa Gin en tu código y Go lo descargará automáticamente durante la compilación:
import "github.com/gin-gonic/gin"Tu primera aplicación Gin
Sección titulada «Tu primera aplicación Gin»Aquí tienes un ejemplo completo que demuestra la simplicidad de Gin:
package main
import ( "net/http"
"github.com/gin-gonic/gin")
func main() { // Create a Gin router with default middleware (logger and recovery) r := gin.Default()
// Define a simple GET endpoint r.GET("/ping", func(c *gin.Context) { // Return JSON response c.JSON(http.StatusOK, gin.H{ "message": "pong", }) })
// Start server on port 8080 (default) // Server will listen on 0.0.0.0:8080 (localhost:8080 on Windows) r.Run()}Ejecutar la aplicación:
-
Guarda el código anterior como
main.go -
Ejecuta la aplicación:
Ventana de terminal go run main.go -
Abre tu navegador y visita
http://localhost:8080/ping -
Deberías ver:
{"message":"pong"}
Lo que demuestra este ejemplo:
- Crear un enrutador Gin con middleware predeterminado
- Definir endpoints HTTP con funciones handler simples
- Devolver respuestas JSON
- Iniciar un servidor HTTP
Siguientes pasos
Sección titulada «Siguientes pasos»Después de ejecutar tu primera aplicación Gin, explora estos recursos para aprender más:
Recursos de aprendizaje
Sección titulada «Recursos de aprendizaje»- Guía de inicio rápido de Gin - Tutorial completo con ejemplos de API y configuraciones de compilación
- Repositorio de ejemplos - Ejemplos listos para ejecutar que demuestran varios casos de uso de Gin:
- Desarrollo de APIs REST
- Autenticación y middleware
- Carga y descarga de archivos
- Conexiones WebSocket
- Renderizado de plantillas
Tutoriales oficiales
Sección titulada «Tutoriales oficiales»Ecosistema de middleware
Sección titulada «Ecosistema de middleware»Gin tiene un rico ecosistema de middleware para necesidades comunes de desarrollo web. Explora el middleware contribuido por la comunidad:
-
gin-contrib - Colección oficial de middleware que incluye:
- Autenticación (JWT, Basic Auth, Sesiones)
- CORS, Limitación de tasa, Compresión
- Logging, Métricas, Rastreo
- Servicio de archivos estáticos, Motores de plantillas
-
gin-gonic/contrib - Middleware adicional de la comunidad