Inicie os exercícios criando uma aplicação Node.js com os comandos já aprendidos. A sua API deve rodar em http://localhost:3000
.
Cada desafio pede para implementar um middleware em um arquivo específico dentro do diretório middlewares
mas que deve ser associada a uma rota específica.
Esse repositório possui tanto testes unitários como testes de integração, ou seja, ele vai avaliar se o middleware cumpre seu objetivo específico, mas também vai testar se as rotas executam os seus respectivos middlewares.
- retorne uma resposta com status igual a 200 e a mensagem
pong
. - Esse middleware deve ser acessível pela rota
GET /ping
;
- O middleware recebe o atributo
name
pelo body da requisição - a resposta do middleware deve ser
{ "message": "Hello, <nome do usuário>!" }
, onde<nome do usuário>
deve ser o nome enviado. - O status da resposta deve ser
201
. - Esse middleware deve ser acessível pela rota
POST /ping
;
- esse middleware recebe o atributos
name
eage
pelo body da requisição. Esse middleware deve seguir a seguinte lógica:
- Se o valor do atributo
age
for maior ou igual a 18 deve a resposta deve ter o status 200 e o json{ "message": "Hello, <nome do usuário>!" }
- Se o valor do atributo
age
for menor que 18 a resposta deve ter o status 401 e o json{ "message": "Unauthorized" }
.
- Esse middleware deve ser acessível pela rota
POST /greeting
.
simpsons.json
, não modifique o conteúdo desse arquivo, exceto quando o requisito pedir por isso.
fs
do Node para ler e escrever nesse arquivo.
- a resposta deve ter o status
200
e retornar o conteúdo do arquivosimpsons.json
. - Esse middleware deve ser acessível pela rota
GET /simpsons
- Deve receber o id como parâmetro de rota;
- Se existir um simpson correspondente ao id passado a resposta da requisição deve ter o status 200 e retornar o objeto do simpson como json.
- Se não existir um simpson correspondente ao id passado a resposta da requisição deve ter o status 404 e retornar o seguinte json:
{ message: 'Simpson not found!'}
Esse middleware deve ser acessível através da rota GET /simpsons/:id
- Deve ser capaz de receber os parâmetros
id
ebody
no corpo da requisição. - Deve ser capaz de adicionar um objeto com os dois parâmetros recebidos no arquivo
simpsons.json
. - A resposta da requisição deve ser
{ message: 'Simpson criado com sucesso!' }
com o status201
.
Esse middleware deve ser chamado pela rota POST /simpsons
.
7 - Crie um middleware no arquivo middlewares/validateIdSimpson.js
seguindo as seguintes especifições:
- Deve ser capaz de receber o parâmetro
id
doreq.body
. - Se já existir um simpson com id passado deve retornar o json
{ message: 'Não é possível cadastrar esse simpson!'}
com o status500
. - Caso não exista, deve chamar a função
next
do middleware. - Esse middleware deve ser chamado pela rota
POST /simpsons
antes do middleware construído no requisito 5.
8 - Crie um middleware no arquivo middlewares/validateNameSimpson.js
seguindo as seguintes especifições:
- Deve ser capaz de receber o parâmetro
name
doreq.body
. - Se o valor de
name
for igual a vazio ou nulo deve retornar o json{ message: 'Nome é obrigatório'}
e status 500. - Caso
name
seja válido deve chamar a funçãonext
do middleware. - Esse middleware deve ser chamado pela rota
POST /simpsons
antes do middleware construído no requisito 6 e depois do middleware construído no requisito 7.