DEV Community

Jesus Gonzalez
Jesus Gonzalez

Posted on

Como subir una API desarrollada con el lenguaje GO a Heroku

Cuando se está en el proceso de desarrollo de una API, se realizan pruebas internas para verificar el funcionamiento de los distintos componentes de la misma. Luego que la fase de pruebas haya concluido se debe subir a un servidor, desde donde los usuarios para la cual fue desarrollada puedan consumir sus servicios. Existen muchas empresas las cuales ofrecen alojar la API, pero cada una ofrece diferentes paquetes de funcionabilidades, dependiendo de los requerimientos se decidirá cual empresa se adapta mejor. En este tutorial se indicaran los pasos necesarios para subir la API a Heroku.

La API constara de una única función, debido a que el objetivo de este tutorial es indicar como debe configurarse un proyecto localmente para que esté en condiciones de ser aceptado por el servicio heroku.

Para el proyecto se utilizó el lenguaje GO versión: go1.13.7

version-go

Alt Text

La función ListenAndServe inicia un servidor HTTP con la dirección :8000 cuando se trabaja localmente se utiliza el puerto 8000, pero cuando ya se encuentre alojada en el servicio el puerto lo decidirá Heroku por ende tiene esa validación, un único endpoint de acceso /hello por el cual se pueden hacer peticiones el cual devolverá el mensaje: “Hello, World!”.

A pesar de que el proyecto no posee ninguna dependencia como: Gorilla, bcrypt , entre otras. Lo normal es que los servicios web tengan dependencias para propósitos específicos. Para su manejo es necesario instalar una herramienta que las administrara, algunas de ellas son Godep, Dep y Go Modules.

El manejador seleccionado a utilizar es Godep. Para su instalación se debe cumplir los siguientes pasos:

Dentro de la carpeta del proyecto se deberá abrir la consola y ejecutar el siguiente comando:
go get -u github.com/tools/godep

El cual lo descargara e instalara, para validar su instalación se ejecuta: godep version
Debería mostrar la versión que se instaló.

Alt Text

De lo contrario mostrara un error como el siguiente:
Alt Text

Para corregir ese error se necesita agregar la dirección de la carpeta donde se almacenan los archive BIN a la variable PATH de Windows.

Ahora se ejecutara Godep que organizara las dependencias.
godep save ./...

De no mostrar ningún mensaje de error, se generaran dos carpetas: Godeps y Vendor, la API no cuenta con dependencias por lo cual no se generara la carpeta Vendor. En el caso de la carpeta Godeps se creara un archivo JSON automáticamente donde se almacenara la lista de las dependencias que se utilizan en la aplicación.

Alt Text

Las nuevas carpetas deben ser almacenadas en un repositorio GIT. Se iniciara con el comando : git init

Alt Text

Se debe hacer commit a los cambios, primero el comando git add . , luego git commit –m “Agregando dependencias”

Alt Text

Lo siguiente es crearse una cuenta en heroku a través de este link: Registrarse

Y luego descargar e instalar el CLI con el cual se podrá subir el código a la recién creada cuenta de Heroku: Descargar CLI.
Para verificar que la instalación del CLI fue exitosa se ingresa el comando: heroku –versión se deberá mostrar la versión de heroku instalada en la computadora.

Alt Text

Para continuar con el proceso se debe iniciar sesión sincronizando el proyecto con la cuenta. La sincronización se hace con el comando heroku login el cual abrirá una ventana en un navegador para que se inicie sesión en la cuenta de heroku.

Alt Text

Si desea conocer si la autenticación fue exitosa se ejecuta el comando
heroku auth:token le deberá mostrar el token asignado.

Para este siguiente paso se debe crear una aplicación en Heroku la cual será la que recibirá el código y se generara automáticamente un repositorio GIT específico para la nueva aplicación en heroku. heroku create [nombre-app]

Alt Text

Se puede observar la recién creada aplicación en el panel de la cuenta de heroku.

Alt Text

Y el nuevo repositorio GIT con git remote –v

Alt Text

Ahora para finalizar se debe enviar el código a la aplicación en heroku:
git push heroku master

Alt Text

Si todo fue enviado correctamente a partir desde este momento los usuarios pueden hacer uso de la API.

Nota: Ese mismo comando se debe ejecutar cada vez que se realice un cambio en el código localmente y se desee enviar a la aplicación en heroku.

Alt Text

Si desea conocer cuántas versiones tiene la aplicación en heroku, se puede observar con heroku releases y para conocer con más detalle a una específica versión se utiliza heroku releases:info [versión-release]

Alt Text

Heroku implementa una medida de protección de sus servicios, limita la cantidad de envíos de código a la aplicación que se encuentra en sus servicios de un número de 75 peticiones por usuario, por aplicación y por hora. Si desea conocer más acerca de una implementación de la medida en el lenguaje GO lo puede leer aquí:
Como limitar las peticiones a una api.

Si usted tiene alguna pregunta, sugerencia o corrección, ¡estaría encantado conocerla!

Top comments (1)

Collapse
 
cescquintero profile image
Francisco Quintero 🇨🇴

Heroku como siempre simplificando la forma de hacer las cosas :D