Neste projeto guiado denominado "Reprogramafy" criamos uma API em NodeJs para manuseio de listas de músicas e podcasts.
Neste processo conseguimos entender o uso dos principais métodos HTTP executando as rotas via Postman e inserindo alguns métodos como recursos do Express e Javascript para manuseios especificos, tais como os métodos de busca includes
, find
, findInex
, filter
, o math.floor
para gerar id aleatório quando utilizamos o método POST, além do método splice
usado na inserção de novo elemento da Array de músicas e podcasts. Também configuramos tratamentos de erro utilizando try/catch
e if/else
.
Além disso adotamos o padrão MVC como base para organizar o projeto, deste modo temos a seguinte arquitetura:
📂 reprogramafy
├── 📁 img
├── 📂src
│ ├── 📂controllers
| ├── 📃 musicasController.json
| ├── 📃 podcastsController.json
│ ├── 📂models
| ├── 📃 musicas.json
| ├── 📃 podcasts.json
│ ├── 📂routes
│ ├── 📃 musicasRoutes.js
│ ├── 📃 podcastsRoutes.js
| ├── 📃 app.js
├── 📃 .gitignore
├── 📃 package-lock.json
├── 📃 package.json
├── 📃 server.js
Na configuração das rotas para manipular a playist de músicas temos a seguinte estrutura disponível:
Verbo | Rota | Descrição da Rota |
---|---|---|
GET | localhost:1313/playlist/musicas | listar todas as músicas da playlist do usuário |
GET | localhost:1313/playlist//musicas/buscar/:id | listar apenas uma música específica |
GET | localhost:1313/playlist/musicas/artista?artist=beyonce | listar músicas de um artista específico |
POST | localhost:1313/playlist/musicas | adicionar uma nova música |
DELET | localhost:1313/playlist//delete/:id | remover uma música da lista |
PUT | lcalhost:1313/playlist/alterar/:id | alterar informações da música |
PATCH | localhost:1313/playlist/atualizar/:id | favoritar/desfavoritar uma música |
Na configuração das rotas para manipular a lista de podcasts temos a seguinte estrutura disponível:
Verbo | Rota | Descrição da Rota |
---|---|---|
GET | localhost:1313/podcast/biblioteca | Listar podcasts |
GET | localhost:3000/podcast/biblioteca/tema?topic=tecnologia | Listar podcast por tópico |
POST | localhost:1313/podcast/biblioteca | adicionar uma nova música |
DELET | localhost:1313/podcast//delete/:id | remover podcast |
PATCH | localhost:1313/podcast//atualizar/:id | alterar a classificação de um podcast |