Consulta el clima de las ciudades de origen y destino de tickets de aeropuertos, utilizando la API de OpenWeatherMap. Realiza consultas concurrentemente, limitando las solicitudes a la API y utilizando una caché.
Recomendamos utilizar Docker para instalar el proyecto, o el manejador de versiones asdf. No obstante, también es posible realizar la instalación manual, utilizando los repositorios oficiales de cada sistema operativo, aunque esto es propenso a incompatibilidades.
Es posible utilizar Docker para simplificar la instalación de Erlang y Elixir.
Para esto, proveemos el archivo Dockerfile.
Para instalar Docker, recomendamos seguir las guías oficiales.
Una vez teniendo Docker instalado, podemos ejecutar los siguientes comandos:
# Construye el contenedor y compila el proyecto.
docker build -t webservice .
# Ejecuta el proyecto
docker run webserviceEsto va a ejecutar el proyecto, utilizando los archivos dataset1.csv y dataset2.csv, que se encuentran en la carpeta priv.
El programa fue desarrollado y testeado en Elixir 1.10.4 (OTP 23.0.4).
Recomendamos utilizar asdf para la instalación y para asegurar que no hay incompatibilidad de versiones. Instrucciones para instalar asdf.
Instalar los pre-requisitos de erlang:
sudo apt-get -y install build-essential autoconf m4 libncurses5-dev libwxgtk3.0-gtk3-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop libxml2-utils libncurses-dev openjdk-11-jdkInstalación de erlang:
# Instrucciones en: https://github.com/asdf-vm/asdf-erlang
asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.git
asdf install erlang 23.0.4
asdf global erlang 23.0.4Instalación de elixir:
sudo apt-get install unzip
asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git
# Es necesario que concuerde con la versión OTP
asdf install elixir 1.10.4-otp-23
asdf global elixir 1.10.4-otp-23 Para ver la versión instalada en el sistema se puede ejecutar el comando iex --version.
Primero es necesario instalar las dependencias del proyecto:
mix deps.getPosteriormente, podemos compilar el proyecto utilizando el comando:
# Primero ejecutar:
mix compile
# Luego, ejecutar:
mix run_projectEl primer comando compilará el proyecto, y el segundo comando ejecutará el proyecto.
Para correr las pruebas unitarias:
mix testTras haber compilado el proyecto, con las instrucciones de antes, se habrá generado el archivo ejecutable webservice. Este puede ejecutarse como cualquier programa de linux, únicamente llamándolo desde bash de la siguiente manera:
./webservice
Esto va a ejecutar el proyecto, utilizando los archivos dataset1.csv y dataset2.csv, que se encuentran en la carpeta priv.
- Fausto David Hernández Jasso - [email protected] - GitHub
- Juan Pablo Yamamoto Zazueta - [email protected] - GitHub