Bienvenidos al tutorial de como crear un apirest de los albumes principales de tu artista favorito.
En esta ocasion vamos a crearlo con la informacion de los albumes del DJ Avicii.
Antes de nada tienes que preparar tu entorno de desarrollo ,vas a iniciar un proyecto con npm abriendo la terminal de tu preferencia y escribiendo en ella el comando (npm init ), despues procedemos a instalar dependencas , en este caso solo lo vamos a instalar
como dependencias de desarrollo , y son las siguientes dependencias:
.EXPRESS:
npm install express -D
.CORS:
npm install cors -D
.NODEMON:
npm install nodemon -D
Una vez instalado las dependencias mencionadas vas a crear un archivo javascript con el nombre index.js y una carpeta llamada router.
Bien ahora que tenemos el index.js ,dentro del archivo vamos a crear nuestro servidor usando la dependencia de Express de la siguiente manera :
const express = require("express");
constapp = express();
const PORT = 3000;
app.listen(PORT, () => {
console.log("La Api esta funcionando correctamente");
})
Ahora que ya tenemos nuestro servidor corriendo en nodejs , procedemos a realizar las rutas , ya que todavia no estamos devolviendo ninguna informacion para ello vamos a ingresar en la carpeta que creamos llamada router y dentro de ella crearemos cuatro archivos : index.js ,albumes.json, musica.json y routerMusica.js.
Primero vamos a escribir toda la informacion que va ir en el archivo musica.json , el archivo tiene que tener todos los datos principales del artista
como en este ejemplo :
[
{
"nombreReal":"Tim Bergling",
"nombreArtistico":"Avicii",
"nacimiento":"08/09/1989",
"fallecimiento":"20/04/2018",
"genero":["Dance/Electronica","Pop","Hip-Hop"],
"imagenArtista":"https://i.scdn.co/image/ab67616d00001e02ce4fe7b5d10a81503c26262e",
"descripcion":"Avicii, fue un DJ, remezclador, compositor y productor musical sueco.A los 16 años comenzó a publicar sus remixes en foros de música electrónica, lo que lo llevó a su primer contrato discográfico .Alcanzó la fama en 2011 con su sencillo «Levels».",
"albumes":"/api/v1/avicii/albumes"
}
]
Despues escribimos los datos de albumes.json :
[
{
"album": "album1",
"portadaAlbum": "link de portada",
"fecha": "2019",
"numeroCanciones": "12",
"canciones": [
{
"nombre": "Peace Of Mind(feat. Vargas & Lagola)",
"artista": "Avicii,Vargas & Lagola",
"portada": "link de portada",
"tiempo": "3:00",
"link": "link de la cancion "
},
]
},
{
"album": "album2",
"portadaAlbum": "link de portada",
"fecha": "2019",
"numeroCanciones": "12",
"canciones": [
{
"nombre": "Peace Of Mind(feat. Vargas & Lagola)",
"artista": "Avicii,Vargas & Lagola",
"portada": "link de portada",
"tiempo": "3:00",
"link": "link de la cancion "
},
]
}
]
Luego tienes que definir todos los endpoints de tu api para ello tenemos que ingresar al archivo routerMusica.js y escribir las rutas:
const express = require("express");
const artista= require("./musica.json");
const albumes = require("./albumes.json");
const router = express.Router();
router.get("/",(req,res)=>{
res.send(artista)
})
router.get("/albumes",(req,res)=>{
res.send(albumes)
})
module.exports = router
Inmediatamente nos pasamos al otro archivo index.js que esta dentro de la carpeta router y escribimos esto :
const express = require("express");
const musicaRouter = require("./routerMusica")
// se crea una funcion para que tenga un mejor matenimiento del codigofunctionApiMusica(app) {
const router = express.Router();
app.use("/api/v1", router);
router.use("/avicii", musicaRouter);
}
module.exports = ApiMusica;
Luego nos movemos al index.js principal y creamos unas variables , la primera es cors y ApiMusica :
const express = require(“express”);
constapp = express();
const cors = require(“cors”);
const ApiMusica = require("./router/index");
const PORT = 3000;
app.use(cors());
app.use(express.json());
ApiMusica(app);
app.listen(PORT, () => {
console.log(“La Api esta funcionando correctamente”);
})
El modulo cors nos permite poder usar nuestra api y que no tenga ningun tipo de problemas cuando hacemos el llamado por ejemplo con un fetch
desde un archivo html es por eso que definimos en el archivo escribiendo : app.use(cors()); y por otro lado tambien escribimos app.use(express.json());
para ser usado como un middleware.
Y con eso principalmente ya creamos un api muy sencillo que nos permite tener informacion de un artista , como los albumes , canciones, datos personales, etc.
si deseas comprobar como quedaria la api , el enlace es el siguiente :https://avicii.onrender.com/api/v1/avicii