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
Publicar un comentario