脷ltimamente estoy harto de salir del trabajo y pensar:
Me gustar铆a escuchar m煤sica tranquila, pero el maldito aleatorio en las canciones de Spotify hace que pase de El Concierto de Aranjuez a Thunderstruck, maldita sea.
Por ello, he decidido implementar una API, la cual dependiendo del g茅nero y de mi estado de 谩nimo me recomiende una lista de reproducci贸n en Spotify. A su vez, y por comodidad, se a帽adir谩 una opci贸n para poder reproducir la lista de reproducci贸n en la misma aplicaci贸n, sin necesidad de salir de la misma o tener que ir a otra p谩gina o aplicaci贸n
Para el desarrollo de este proyecto es necesario utilizar un usuario de Spotify por defecto, para poder generar un token para realizar peticiones al servidor de Spotify.
En el fichero api/lista.js se han implementado una serie de funciones que se ejecutan con las diferentes peticiones al servidor seg煤n la ruta indicada. Como avance del proyecto se han implementado:
- Una petici贸n para obtener todos los g茅neros disponibles en Spotify.
- Una petici贸n que se encargue de, a partir del g茅nero introducido, obtener su ID de la API de Spotify y volver a hacer una petici贸n al servidor de Spotify para generar una playlist en relaci贸n a dicho ID.
- Una petici贸n igual que la anterior pero para obtener una playlist en relaci贸n a un artista.
- Una petici贸n igual que la anterior pero para obtener el top canciones del artista introducido.
El fichero api/servidor.js es el fichero que se ejecuta en Node para levantar el servidor. As铆 se desacopla las funciones del servidor con el servidor en s铆.
Para la configuraci贸n distribuida, se ha utilizado etcd3 y la biblioteca de node node-etcd. Dentro del c贸digo del fichero servidor.js se crea una instancia de etcd para obtener el puerto de la variable de entorno port. Si est谩 vac铆a, se asigna por defecto el puerto 3000.
El framework escogido para gestionar los Microservicios ha sido Express, frente a otras opciones como Nest o Hapi. Dentro de la carpeta docs se encuentra el archivo frameworkParaMicroservicios.md, donde se explica el motivo de la elecci贸n de Express frente a las otras opciones.
La explicaci贸n sobre c贸mo se usa Express dentro de la API se encuentra en el archivo express.md, dentro de la carpeta docs.
Las posibles peticiones a realizar al servidor se encuentran explicadas en el archivo peticionesAPI.md, dentro de la carpeta docs.
Los tests para dichas peticiones se encuentran en el fichero lista.test.js. Utilizan Jest y Supertest para realizar dichos tests, evaluando lo que devuelve cada petici贸n variando los par谩metros introducidos. Dentro de la carpeta docs se encuentra el archivo tests.md, donde se explica lo realizado en cada uno de los tests.
Todos los ficheros de documentaci贸n se encuentran en la carpeta docs.
En la carpeta docs se puede encontrar m谩s informaci贸n acerca de la configuraci贸n de Vercel y de la explicaci贸n de la funci贸n Serverless (esta funci贸n ha sido sustituida por las diferentes funciones para los microservicios, por tanto el link est谩 obsoleto).
Dentro de la carpeta docs se encuentra el archivo pasos.md, que ir谩 reflejando los pasos que se den en los diferentes estados de la aplicaci贸n. Estos pasos deber谩n relacionarse con los diferentes issues, historias de usuario y milestones propuestos en el proyecto.
En la carpeta docs se aporta informaci贸n acerca de las herramientas utilizadas para el desarrollo de esta aplicaci贸n.
En la carpeta docs se aporta el proceso de instalaci贸n de las herramientas necesarias para la ejecuci贸n de esta aplicaci贸n.
En la carpeta docs se aporta informaci贸n acerca de los tests usados para evaluar la consistencia de la aplicaci贸n.
Se puede consultar acerca de la imagen de Docker creada y del proceso de elecci贸n de imagen con respecto a todas las disponibles.
Se puede consultar acerca de la herramientas de integraci贸n continua que se est谩n utilizando dentro de la carpeta docs.
La Configuraci贸n inicial necesaria para el comienzo del proyecto.