Introducción a frameworks Web en GO

Rafael Lopez
hacknight.tech
Published in
3 min readJul 11, 2017
Gophers

La idea de esta entrada es conocer a introducción algunos frameworks que están de moda para crear aplicaciones, microservicios, etc.

Para el manejo de dependencias recomiendo GoVendor.

Gin-gonic

Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance — up to 40 times faster

En pocas palabras es un framework que tiene una una sintaxis parecida a martini, con un excelente rendimiento, facilidad de comprender y muy completo, una de las desventajas es el router, pero lo demás esta excelente.

Un ejemplo sencillo de Hola Mundo, seria el siguiente:

package main

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

func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // listen and serve on 0.0.0.0:8080
}

Macaron

Package macaron is a high productive and modular web framework in Go.

Es un framework relativamente nuevo, muy fácil de usar, con inyección de dependencias, funciona muy bien tiene lo elemental. La sintaxis es muy parecida a Gin-Gonic.

Ejemplo de hola mundo:

package main

import "gopkg.in/macaron.v1"

func main() {
m := macaron.Classic()
m.Get("/", func() string {
return "Hello world!"
})
m.Run()
}

Echo

Fast and unfancy HTTP server framework for Go . Up to 10x faster than the rest.

Es un framework muy interesante, con muchas librerías que se pueden integrar de manera sencilla, lo que mas me gusto es como se inyectan las dependencias usando el context, la documentación es muy sencilla, esta muy completo, permite personalizarse de manera sencilla.

package main

import (
"net/http"
"github.com/labstack/echo"
)

func main() {
e := echo.New()
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
})
e.Logger.Fatal(e.Start(":1323"))
}

Otro framework que esta creciendo es iris, vale la pena que le eches un ojo.

Para tomar la decisión correcta, enumero algunos puntos principales que hacen la diferencia entre un framework a otro son :

  • Soporte de la comunidad.
  • Buena documentación.
  • Binding sencillo y elegante.
  • Agregar middlewares facilmente.
  • Buena inyección de dependencias, que es por ejemplo inicializaces la base de datos y puedas llamarla desde cualquier lado del proyecto.
  • Que permita usar cualquier motor de templates/web.
  • Permita la personalización del core del framework.
  • Manejo eficientes del router http.

Prueba, cada uno de los framework, lee en la documentación lo que puede hacer, y usa el que se te haga sencillo, tenga buen azúcar sintáctico , que veas un gran potencial a futuro y no tengas que migrar a otro framework.

Gracias.

Referencias:

--

--