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
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
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
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
Después de ejecutar tu primera aplicación Gin, explora estos recursos para aprender más:
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
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