No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
2 Hrs
30 Min
41 Seg

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

31/36
Recursos

Aportes 18

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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

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

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

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

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

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.
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

go get -v -u github.com/labstack/echo

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/v4@v4.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
		**/

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

Deben actualizar el vídeo ya que los comando para instalar han cambiado

tienen un curso en que se pueda hacer un software básico, como un e-commerce o un ejemplo para la web o de concurrencia?

Siento que sería de mucha utuiliad para toda la comunidad.

A mi me sirvió instalar así

go install -v github.com/labstack/echo/v4@latest

hasta que por fin se pudo , siempre me salia que la ruta no estaba en el main

Ya varias veces he tratado de hacer lo que dice en el video, según este artículo ya no se usa “go get”, si no, “go install” https://go.dev/doc/go-get-install-deprecation

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

Si les da el error

cannot find package “githubcom/labstack/echo/v4” in any of:
/usr/local/Cellar/go/1.18.2/libexec/src/github.com/labstack/echo/v4 (from $GOROOT)

Se puede usar este command
go get gopkgin/labstack/echo.v4