DEV Community

loading...
Adevinta Spain

Desplegando tu API de .NET Core gratis en Heroku

Jhon Marmolejo
・3 min read

Cuando queremos compartir, testear y/o analizar el comportamiento de nuestra APIs de .NET Core en un entorno de pruebas diferente a local, tenemos muchos proveedores en la nube con opciones gratuitas como AWS, Windows Azure, pero en este artículo te enseñaré otra opción, mucho más fácil y rápida para realizar tu despliegue, Heroku.

Heroku es un PASS respaldado por Salesforce y permite a los desarrolladores desplegar sus aplicaciones de una forma fácil, gratuita (para aplicaciones de test o poco consumo), que permite el uso de diferentes lenguajes de programación y el despliegue se apoya internamente usando Github.

Para desplegar nuestra API en NET Core utilizaremos el siguiente repositorio el cual contiene una simple API desarollada en NET Core 3.1

GitHub logo jhonmarmolejo / NetCoreApiVersionDemo

A basic API in .NET CORE in order to show an API versioning

NetCoreApiVersionDemo

A basic API in .NET CORE 3.1 in order to show an API versioning

Requirements

SDK .NET CORE 3.1

Useful Links

Post Link




Registrando tu API en Heroku

  • Antes de empezar debemos registrarnos en Heroku

https://signup.heroku.com/

  • Una vez registrado, debemos crear una nueva APP desde el dashboard

Alt Text

  • Ponemos el nombre a nuestra APP y seleccionamos la región en donde queremos desplegarla

Alt Text

Desplegando tu API

  • Clonamos el repositorio
git clone https://github.com/jhonmarmolejo/NetCoreApiVersionDemo.git
Enter fullscreen mode Exit fullscreen mode
  • Nos situamos en el root de la solución, abrimos una consola de Powershell por ejemplo y ejecutamos el siguiente comando para restaurar todos los paquetes necesarios y ver que la solución compila correctamente
dotnet build
Enter fullscreen mode Exit fullscreen mode

Alt Text

  • Entramos al folder que contiene el proyecto de la API. En nuestro caso ejecutamos el siguiente comando
cd MyApi
Enter fullscreen mode Exit fullscreen mode
  • Dentro de este folder, ejecutamos el siguiente comando
heroku login
Enter fullscreen mode Exit fullscreen mode

Alt Text

  • Luego de ejecutar este comando, tal como dice el mensaje, pulsamos cualquier letra (menos la letra q) para autenticarnos en Heroku. En este momento se abrirá el navegador para que tu puedas loguearte en Heroku

Alt Text

Alt Text

  • Damos click a "Log in" y ya estariamos logueados en Heroku para poder seguir el despliegue desde la consola

Alt Text

Alt Text

  • Una vez logueado, ejecutamos el siguiente comando para añadir acceso remoto a heroku
heroku git:remote -a adevintaapi
Enter fullscreen mode Exit fullscreen mode

Alt Text

  • IMPORTANTE: Añadimos el buildpack necesario para poder desplegar nuestra API de net Core en Heroku
heroku buildpacks:set jincod/dotnetcore 
Enter fullscreen mode Exit fullscreen mode

Alt Text

  • Subimos el repositorio a heroku con el siguiente comando
git push heroku main
Enter fullscreen mode Exit fullscreen mode

Alt Text

NOTA: Actualmente Heroku da error ejecutando este comando ya que necesita que tengamos seteado el stack de heroku-16 o heroku-18.

Para solucionar esto ejecutamos el siguiente comando y establecemos por defecto el stack de heroku-18

heroku stack:set heroku-18
Enter fullscreen mode Exit fullscreen mode

Alt Text

  • Una vez solucionado esto, volvemos a ejecutar el comando
git push heroku main
Enter fullscreen mode Exit fullscreen mode

Alt Text

Y si has seguido correctamente todas las instrucciones ya tenemos desplegada nuestra API en Heroku en la siguiente URL

https://adevintaapi.herokuapp.com/

Y para verificar que está desplegada correctamente, llamamos al único endpoint disponible que tiene esta API de ejemplo

https://adevintaapi.herokuapp.com/api/demo

Alt Text

Y como podemos ver, la api ya nos está devolviendo respuesta

Desplegando nuevos cambios

Si queremos modificar nuestra API y desplegar los nuevos cambios es tan simple como subir los cambios a github

git add .
git commit -m "New changes"
git push
Enter fullscreen mode Exit fullscreen mode

Alt Text

Y una vez subido a github, ejecutar el comando para loguearnos en heroku

heroku login
Enter fullscreen mode Exit fullscreen mode

Y luego lo subimos a heroku nuevamente ejecutando el siguiente comando

git push heroku main
Enter fullscreen mode Exit fullscreen mode

Una vez ejecutado, volvemos a llamar al único endpoint disponible de la API y vemos que la respuesta ha cambiado

https://adevintaapi.herokuapp.com/api/demo

Alt Text

Hasta la próxima!

Discussion (0)