Ir al contenido principal

Gin Web Framework

Gin Framework es un framework web de alto rendimiento escrito en Golang que facilita la creación de aplicaciones web, APIs REST y microservicios.

Se destaca por su velocidad, eficiencia y productividad, utilizando httprouter para un enrutamiento rápido y un diseño minimalista.

Principales características:

  • Veloz y con poco consumo de recursos de memoria. 
  • Soporte de middleware. 
  • Capaz de recuperarse a bloqueos. 
  • Validación de JSON. 
  • Buen manejo de errores. 
  • Render incluido.
  • Capaz de extenderse.

Para instalarlo basta con importarlo:

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

Veamos un ejemplo.

main.go

package main

import (
  "net/http"

  "github.com/gin-gonic/gin"
)

func main() {
  // Crea un router Gin con middleware por defecto (logger y recovery)
  r := gin.Default()

  // Define un endpoint GET sencillo
  r.GET("/ping", func(c *gin.Context) {
    // Devuelve respuesta JSON
    c.JSON(http.StatusOK, gin.H{
      "message": "pong",
    })
  })

  // Inicia el servidor en el puerto 8080 (por defecto)
  // El servidor escuchará en 0.0.0.0:8080 (localhost:8080 en Windows)
  r.Run()
}

Para ejecutarlo, abrimos una terminal y tecleamos:

$ go run main.go

Abre el navegador en la ruta: http://localhost:8080/ping

Si todo funciona, obtendrás esta respuesta:

{"message":"pong"}

Para versiones de Go igual o superiores a la 1.11 es necesario hacer unos pasos extra.

1. Crear un directorio:

$ mkdir pruebasGin
$ cd pruebasGin

2. Iniciar nuevo módulo:

$ go mod init miapi

3. Descargar Gin Framework:

$ go get github.com/gin-gonic/gin

4. Ordenar y verificar el mod:

$ go mod tidy

Tu directorio lucirá así:

pruebasGin/
   go.mod
   go.sum
   main.go

El contenido de ``go.mod`` será el siguiente:

require github.com/gin-gonic/gin v1.11.0

require (
	github.com/bytedance/sonic v1.14.0 // indirect
	github.com/bytedance/sonic/loader v0.3.0 // indirect
	github.com/cloudwego/base64x v0.1.6 // indirect
	github.com/gabriel-vasile/mimetype v1.4.8 // indirect
	github.com/gin-contrib/sse v1.1.0 // indirect
	github.com/go-playground/locales v0.14.1 // indirect
	github.com/go-playground/universal-translator v0.18.1 // indirect
	github.com/go-playground/validator/v10 v10.27.0 // indirect
	github.com/goccy/go-json v0.10.2 // indirect
	github.com/goccy/go-yaml v1.18.0 // indirect
	github.com/json-iterator/go v1.1.12 // indirect
	github.com/klauspost/cpuid/v2 v2.3.0 // indirect
	github.com/leodido/go-urn v1.4.0 // indirect
	github.com/mattn/go-isatty v0.0.20 // indirect
	github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect
	github.com/modern-go/reflect2 v1.0.2 // indirect
	github.com/pelletier/go-toml/v2 v2.2.4 // indirect
	github.com/quic-go/qpack v0.5.1 // indirect
	github.com/quic-go/quic-go v0.54.0 // indirect
	github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
	github.com/ugorji/go/codec v1.3.0 // indirect
	go.uber.org/mock v0.5.0 // indirect
	golang.org/x/arch v0.20.0 // indirect
	golang.org/x/crypto v0.40.0 // indirect
	golang.org/x/mod v0.25.0 // indirect
	golang.org/x/net v0.42.0 // indirect
	golang.org/x/sync v0.16.0 // indirect
	golang.org/x/sys v0.35.0 // indirect
	golang.org/x/text v0.27.0 // indirect
	golang.org/x/tools v0.34.0 // indirect
	google.golang.org/protobuf v1.36.9 // indirect
)

5. Ejecutamos el código:

$ go run main.go

Salida:

¡Hemos creado nuestra primera aplicación con Gin Framework!

Enlaces:

https://gin-gonic.com/
https://alquimistadecodigo.blogspot.com/2024/12/revel-un-framework-para-go.html

Comentarios

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...