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
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
Useful Links
Registrando tu API en Heroku
- Antes de empezar debemos registrarnos en Heroku
- Una vez registrado, debemos crear una nueva APP desde el dashboard
- Ponemos el nombre a nuestra APP y seleccionamos la región en donde queremos desplegarla
Desplegando tu API
- Clonamos el repositorio
git clone https://github.com/jhonmarmolejo/NetCoreApiVersionDemo.git
- 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
- Entramos al folder que contiene el proyecto de la API. En nuestro caso ejecutamos el siguiente comando
cd MyApi
- Dentro de este folder, ejecutamos el siguiente comando
heroku login
- 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
- Damos click a "Log in" y ya estariamos logueados en Heroku para poder seguir el despliegue desde la consola
- Una vez logueado, ejecutamos el siguiente comando para añadir acceso remoto a heroku
heroku git:remote -a adevintaapi
- IMPORTANTE: Añadimos el buildpack necesario para poder desplegar nuestra API de net Core en Heroku
heroku buildpacks:set jincod/dotnetcore
- Subimos el repositorio a heroku con el siguiente comando
git push heroku main
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
- Una vez solucionado esto, volvemos a ejecutar el comando
git push heroku main
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
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
Y una vez subido a github, ejecutar el comando para loguearnos en heroku
heroku login
Y luego lo subimos a heroku nuevamente ejecutando el siguiente comando
git push heroku main
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
Hasta la próxima!
Top comments (0)