/on22-b3-s10-api-projeto-guiado-II

Projeto Guiado: GET + POST + DELETE + PUT +PATCH

Primary LanguageJavaScript

logo reprograma

Tema da Aula

Turma Online 22 - B3 | Back-end | Semana 10 | 2023 | Gaia Maria


Reprograma - Semana 10 (Projeto Guiado)

Projeto API Nodejs "{reprograma}fy"

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

Iniciando a API Nodejs

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.

Instalando o Express

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.

Criando o arquivo .gitignore

Devemos criar na raíz do "reprogramafy" o arquivo .gitignore e escrever nele node_modules/ para o git nao trackear essa pasta para commit.

Criando a estrutura da nossa API

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}`)
})

Nodemon

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.

Scripts package.json

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.