Este servicio web implementa una API RESTful que acepta solicitudes que contienen el nombre de la ciudad o las coordenadas de longitud y latitud como parámetros, y devuelve una lista de reproducción de Spotify con canciones que se ajustan a la temperatura de la ubicación. Para acceder a este servicio, es necesario loguearse y obtener un token de acceso.
Este servicio utiliza las APIs de OpenWeatherMap y Spotify para obtener la temperatura actual de la ubicación especificada y las canciones recomendadas basadas en la temperatura. Los datos se almacenan en caché para reducir las solicitudes a las APIs. Los datos de OpenWeatherMap se actualizan cada 3 minutos y se almacenan en caché durante ese período, mientras que los datos de Spotify se actualizan cada 12 horas y se almacenan en caché durante ese tiempo. Después de obtener los datos de ambas APIs, se guarda la información relevante, como la hora de la solicitud, el género musical, la ciudad y las canciones recomendadas en una base de datos PostgreSQL.
Para mas informacion de arquitectura acceda a este documento documentacionArquitectura.md
Para poder utilizar este servicio, es necesario contar con un token de acceso. Para obtenerlo, debes enviar tus credenciales de usuario y contraseña a la siguiente dirección URL:
El token generado debe ser incluido en la cabezera de cada una de las peticiones que realices a las URLs correspondientes. Para ello, debes enviar el token junto con la solicitud correspondiente. Es importante mencionar que el token tiene una duración limitada y deberás obtener uno nuevo una vez que expire.
Para enviar tus credenciales, debes incluir un objeto JSON con el nombre de usuario y la contraseña en el cuerpo de la solicitud, como se muestra a continuación:
{
"userName" : "user",
"password" : "password"
}
http://localhost:8080/api/temperatura/?ciudad=nombre-de-ciudad : para obtener la temperatura de una ciudad en particular.
http://localhost:8080/api/temperatura/?latitud=valor-latitud&longitud=valor-longitud : para obtener la temperatura de una ubicación específica según sus coordenadas de longitud y latitud.
http://localhost:8080/v3/api-docs: para acceder a la especificación OpenAPI en formato JSON.
http://localhost:8080/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config: para acceder a la interfaz de usuario Swagger UI.
-
Para poder utilizar este programa, es necesario que su sistema operativo tenga instalado Java 11 o una versión más reciente. Si no cuenta con Java, puede descargar e instalar la versión correspondiente, por ejemplo desde la página de: https://adoptium.net/temurin/releases/.
-
Es imprescindible contar con una base de datos PostgreSQL, en la carpeta Base_Datos esta el archivo schemaAPIl.sql con los comandos para crear las tablas correspondientes.
-
Cambia el usuario y contraseña al igual que el nombre de la base de datos en el archivo application-dev.properties que esta en la ruta src/main/resources.
-
Modificar el archivo llamado service.properties de la carpeta src/main/resources donde tienes que poner los valores solicitados para la autenticacion.
-
Asegúrese de tener esta información correcta y actualizada antes de ejecutar el programa.
Para utilizar este proyecto, se pueden seguir una las siguientes instrucciones:
- Descarga el proyecto en formato .zip desde la opción "Code" de este repositorio.
- Una vez descargado, descomprime el archivo y abre la carpeta del proyecto.
- Modifica el archivo service.properties que se encuentra en la ruta src/main/resources, agregando los datos necesarios para la autenticación hacia las APIs que vayas a utilizar. Debes poner tus propios datos de autenticación y las URLs necesarias. Al igual que el valor keySecret con un valor para encriptar.
- Implementar la base de datos postgresql corespondiente
- Puedes cambiar el nombre de la base de datos.
- En el directorio Base_Datos hay un archivo llamado schemaAPI.sql con los comandos para crear la tabla necesaria, (esta tabla se debe de llamar igual)
- Finalmente, para ejecutar la aplicación, utiliza el comando:
Este comando iniciará la aplicación utilizando Maven y Spring Boot. Una vez que la aplicación esté corriendo, podrás comenzar a utilizarla.
mvn spring-boot:run
- Clona el repositorio de Git en tu PC con el siguiente comando:
git clone git@github.com:EdwinC27/Microcontrolador.git - Una vez descargado, abre la carpeta del proyecto
- Modifica el archivo service.properties que se encuentra en la ruta src/main/resources, agregando los datos necesarios para la autenticación hacia las APIs que vayas a utilizar. Debes poner tus propios datos de autenticación y las URLs necesarias. Al igual que el valor keySecret con un valor para encriptar.
- Implementar la base de datos postgresql corespondiente
- Puedes cambiar el nombre de la base de datos.
- En el directorio Base_Datos hay un archivo llamado schemaAPI.sql con los comandos para crear la tabla necesaria, (esta tabla se debe de llamar igual)
- Finalmente, para ejecutar la aplicación, utiliza el comando:
Este comando iniciará la aplicación utilizando Maven y Spring Boot. Una vez que la aplicación esté corriendo, podrás comenzar a utilizarla.
mvn spring-boot:run
- Descarga el archivo docker-compose.yml que se encuentra en la carpeta dockerDir
- Una vez descargado, abre el archivo
- Modifica los valores de los siguientes campos según tu entorno:
- spring.datasource.url=jdbc:postgresql://<nombre-de-tu-host>:<puerto-de-PostgreSQL>/<nombre-de-tu-base-de-datos> - spring.datasource.username=<tu-usuario-de-PostgreSQL> - spring.datasource.password=<tu-contraseña-de-PostgreSQL> - Abre una terminal y ubícate en la ruta donde se encuentra el archivo modificado anteriormente.
- Ejecuta el siguiente comando en la terminal:
Este comando levantará los contenedores de Docker definidos en el archivo docker-compose.yml en segundo plano. Espera unos segundos hasta que los contenedores estén listos para ser utilizados.
docker-compose up -d
