Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Go modules: Ir más allá del GoPath con Echo

31/36
Recursos

Aportes 12

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

También está mal editado, quitaron la parte en la que edita el módulo 😦

Esta es la guía de instalación, ya que no la agregaron en el apartado de recursos.

https://echo.labstack.com/guide/

cuando usas god mods no es necesario estar en el GOPATH, god mods nos permite inicializar y/o trabajar nuestro proyecto en cualquier parte de nuestro equipo, no importa si estas en
Documents o en algun otro sitio, esta caracteristica fue pedida por la comunidad dado que algunos no se sentian tan comodos al estar obligados a trabajar en el GOPATH

package main

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

func main() {
	// Instanciar echo
	e := echo.New()

	e.GET("/", func(c echo.Context) error {
		return c.String(http.StatusOK, "Hello world")
	})

	e.Logger.Fatal(e.Start(":1323"))
}

Recomendación para el correcto funcionamiento

  • Primero inicializar le modulo con go mod init myapp
  • Instalar el módulo con go get -u -v github.com/labstack/echo/v4
  • Para habilitar el módulo, debe ejecutar este comando export GO111MODULE=on

Tuve que hacerlo de esta forma, para que funcionara con WSL

No se si a todos le habrá pasado, pero al ejecutar como está en la clase, no funcionaba, pero siguiendo la guía de esta web https://echo.labstack.com/guide/ funciona.

Quizas no lo noten, pero aqui primero ejecutan go get, luego go mod init, y en la guía de la web lo hacen al reves

para la version go1.17 me funciono asi

package main

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

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"))
}

Un pequeño instructivo de este video:

/** Go modules:
		To install 3rd party libraries: Echo - In this case
		https://echo.labstack.com/guide/
			1.- Run: $ go get github.com/labstack/echo/v4
			2.- If you need to watch a great change into a message server:
				2.1.- Move to $GOPATH and open:
					$ cd pkg/mod/github.com/labstack/echo/[email protected]6.1
					Make a copy of your echo.go => $ cp echo.go ..
					Open this file (VSCode in this case): code echo.go
					Look for this message and add your own code:
						 ____    __
	  				/ __/___/ /  ___
	 					/ _// __/ _ \/ _ \
					/___/\__/_//_/\___/ %s
					High performance, minimalist Go web framework
					That's it! Don't forget to overwrite the change
			3.- Go back to main.go of your project and run
				$ go mod verify
				$ go run src/main.go
		**/
go get -v -u github.com/labstack/echo

El paralelo más sencillo para mí de los go modules es con el package.json en JS

En mi opinion, el problema de editar codigo de modulos externos (Echo, en este caso), es que viola uno de los 12 factores (cuyo autor si no me equivoco es un ingeniero de Heroku). La razon es porque el codigo ahora ya no esta en repositorios, sino que esta en tu maquina. Cuando quieras escalar la app en muchos servidores, habria problemas para traer ese mismo codigo a todas esas maquinas (ya que el paquete esta referenciando un repositorio en Github). Una solucion es: hacer un fork de Echo, modificarlo, hacer push, y luego usar ese fork como modulo externo.