Turma Online 22 - B3 | Back-end | Semana 10 | 2023 | Gaia Maria
Você ira desenvolver uma API que deverá ser feito em Nodejs.
A listagem de músicas será no seguinte formato: { titulo, ano de lançamento, favoritada, artistas }
A listagem de podcasts será no seguinte formato: { nome, nome da apresentadora(podcaster), tópico, nota }
O novo produto de músicas deverá:
- poder listar todas as músicas da playlist do usuário
- poder listar apenas uma música específica
- poder listar músicas de um artista específico
- poder adicionar uma nova música
- poder remover uma música da lista
- poder alterar informações da música
- poder favoritar/desfavoritar uma música
Sendo assim precisaremos criar 7 rotas para músicas:
Verbo | Descrição da Rota |
---|---|
POST | Adicionar nova música |
GET | Listar música |
GET | Listar uma música específica |
GET | Listar música por artista |
DELETE | Remover música |
PUT | Alterar informações da música |
PATCH | Favoritar/desfavoritar música |
O novo produto de podcasts deverá:
- poder listar os podcasts
- poder listar os podcasts por tópico
- poder adicionar um podcast
- poder remover um podcast da lista
- poder alterar a nota do podcast
Sendo assim precisaremos criar 5 rotas para podcasts:
Verbo | Descrição da Rota |
---|---|
POST | Adicionar novo podcast |
GET | Listar podcasts |
GET | Listar podcast por tópico |
DELETE | Remover podcast |
PATCH | Alterar a nota de um podcast |
Com o terminal aberto na pasta "reprogramafy", para iniciar nossa API Nodejs, precisamos inicializar o package manager, que é o gerenciador de pacotes do Node. Para isso executaremos npm init
no terminal. Pressionando “Enter”, serão exibidas uma sequência de perguntas que deverão ser preenchidas ou mantidas o valor padrão.
Feito isso, precisaremos instalar o Express no nosso projeto, que é um framework que nos trará facilidades. Para isso executaremos no terminal:
npm install express --save
Ao rodar a instalação do express, uma pasta node_modules com os pacotes do meu projeto será criada. Se reparar, dentro dessa pasta teremos uma pasta chamada “express”. Toda vez que você rodar o comando npm install
essa pasta node_modules será atualizada com as últimas atualizações conforme o que estiver configurado no arquivo package.json.
Devemos criar na raíz do "reprogramafy" o arquivo .gitignore e escrever nele node_modules/
para o git nao trackear essa pasta para commit.
Primeiramente, iremos criar uma pasta chamada “src” (de “source”) na raiz do nosso projeto, onde armazenaremos todos os códigos da aplicação. Dentro dessa, criaremos três pastas:
- controllers - para armazenar a lógica de controle da nossa api
- models - para armazenar os nosso modelos (ex: nossas músicas)
- routes - para armazenar as rotas
reprogramafy
├── src
│ ├── controllers
│ ├── models
│ ├── routes
├── package.json
const app = require("./src/app") //chamando o arquivo app
const port = 1313 //PORTA
//iniciando o servidor
app.listen(port , ()=>{
console.log(`Servidor está rodando na porta ${port}`)
})
Caso você esteja com o servidor rodando e tente alterar algum arquivo, para que o servidor capte essas alterações será necessário reiniciá-lo manualmente. Porém é bem chato ficar fazendo isso. Para evitar esse tipo de problema, podemos utilizar o nodemon para inicializar nosso servidor. Para utilizá-lo, deveremos primeiramente instalá-lo rodando o comando npm install nodemon --save
. Com o nodemon instalado, para rodar nosso servidor o utilizando, deveremos utilizar o comando nodemon server.js
. Com isso nosso servidor será inicializado com o nodemon e você poderá editar seus arquivos sem precisar reiniciá-lo.
Para não precisar ficar escrevendo nodemon server.js
para inicializar o servidor, podemos ir no nosso arquivo package.json e editar o atributo "scripts" do json. Poderemos incluir um script de start, informando que quando ele for utilizado, executará o comando nodemon server.js
:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon server.js"
}
Dessa forma para inicializar o servidor, basta digitar npm start
no terminal e pressionar enter, que o mesmo já chamará automaticamente o comando nodemon server.js
.