¿Qué es Gin y para qué sirve?
\n\nGin 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
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\nInstalación
\n\nLa 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\nDespués de ejecutar el comando, Gin se agregará a go.mod y go.sum. Ahora puede importarlo en su código:
import "github.com/gin-gonic/gin"\n\nInicio rápido: primer servidor con Gin
\n\nCree un archivo main.go y escriba un servidor HTTP simple:
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\nEjecute la aplicación:
\n\ngo run main.go\n\nAhora abra el navegador y vaya a http://localhost:8080/. Verá una respuesta JSON: {"message":"Hello, Gin!"}.
Métodos y funciones principales de Gin
\n\nA continuación se presentan 10 métodos y funciones clave de Gin con descripción detallada y ejemplos.
\n\n1. gin.Default()
\nQué hace: Crea una nueva instancia del enrutador Gin con dos middleware integrados: Logger (registro de solicitudes) y Recovery (recuperación tras pánico).
\nParámetros: Ninguno.
\nEjemplo:
\nr := gin.Default()\n\n2. r.GET() / r.POST() / r.PUT() / r.DELETE()
\nQué hace: Define un manejador para el método HTTP y la ruta correspondientes.
\nParámetros:
\n- \n
relativePath(string) — ruta de la ruta (ej. "/users/:id") \nhandlers(...HandlerFunc) — una o más funciones manejadoras \n
Ejemplo:
\nr.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\n3. c.JSON()
\nQué hace: Envía al cliente una respuesta JSON con el código de estado HTTP especificado.
\nParámetros:
\n- \n
code(int) — código de estado HTTP (ej.