Criar uma API Rest para gerenciamento de Pokemon.
A API deverá fornecer as seguintes rotas:
- Requisição
- Método:
POST
- Rota:
/pokemon
- Corpo: Objeto JSON com os dados do Pokémon
- Método:
- Resposta
- Status: 200
- Corpo: Objeto JSON com os dados do Pokémon inserido
Objeto do tipo JSON com os dados do Pokémon. Exemplo:
{
"number": 47,
"name": "Parasect",
"photo": "https://cdn.bulbagarden.net/upload/thumb/8/80/047Parasect.png/250px-047Parasect.png",
"types": ["Bug", "Grass"]
}
O objeto de saída deve ser igual ao objeto de entrada:
{
"number": 47,
"name": "Parasect",
"photo": "https://cdn.bulbagarden.net/upload/thumb/8/80/047Parasect.png/250px-047Parasect.png",
"types": ["Bug", "Grass"]
}
- Requisição
- Método:
GET
- Rota:
/pokemon/{{number}}
- Corpo: Vazio
- Método:
- Resposta
- Quando o Pokémon foi encontrado
- Status: 200
- Corpo: Objeto JSON com os dados do Pokémon encontrado
- Quando o Pokémon não foi encontrado
- Status: 404
- Corpo: Objeto de erro
- Quando o Pokémon foi encontrado
A variável {{number}}
representa o número do Pokémon que deseja-se procurar. Exemplo: /pokemon/47
.
O objeto de saída deve ser o Pokémon encontrado. Por exemplo, ao procurar o Pokémon 47, deve retornar o seguinte objeto:
{
"number": 47,
"name": "Parasect",
"photo": "https://cdn.bulbagarden.net/upload/thumb/8/80/047Parasect.png/250px-047Parasect.png",
"types": ["Bug", "Grass"]
}
Caso o Pokémon procurado não exista, deves-se retornar o seguinte corpo como resposta da requisição.
{
"statusCode": 404,
"message": "Pokémon not found",
"error": "Not Found"
}
- Requisição
- Método:
GET
- Rota:
/pokemon
- Corpo: Vazio
- Método:
- Resposta
- Status: 200
- Corpo: Vetor com a lista de Pokémon encontrado
Deve retornar um vetor com a lista de todos os Pokémon criados anteriormente. Exemplo:
[
{
"number": 47,
"name": "Parasect",
"photo": "https://cdn.bulbagarden.net/upload/thumb/8/80/047Parasect.png/250px-047Parasect.png",
"types": ["Bug", "Grass"]
},
{
"number": 105,
"name": "Marowak",
"photo": "https://cdn.bulbagarden.net/upload/thumb/9/98/105Marowak.png/250px-105Marowak.png",
"types": ["Ground"]
},
{
"number": 123,
"name": "Scyther",
"photo": "https://cdn.bulbagarden.net/upload/thumb/b/ba/123Scyther.png/250px-123Scyther.png",
"types": ["Bug", "Flying"]
}
]
- Requisição
- Método:
DELETE
- Rota:
/pokemon/{{number}}
- Corpo: Vazio
- Método:
- Resposta
- Quando o Pokémon for encontrado
- Status: 200
- Corpo: Objeto Pokémon que foi excluído
- Quando o Pokémon não foi encontrado
- Status: 404
- Corpo: Objeto de erro
- Quando o Pokémon for encontrado
A variável {{number}}
representa o número do Pokémon que deve ser excluído. Exemplo: /pokemon/47
.
O objeto de saída deve ser o Pokémon excluído. Por exemplo, ao excluir o Pokémon 47, deve retornar o seguinte objeto:
{
"number": 47,
"name": "Parasect",
"photo": "https://cdn.bulbagarden.net/upload/thumb/8/80/047Parasect.png/250px-047Parasect.png",
"types": ["Bug", "Grass"]
}
Caso o Pokémon que deseja-se excluir não exista, deves-se retornar o seguinte corpo como resposta da requisição.
{
"statusCode": 404,
"message": "Pokémon not found",
"error": "Not Found"
}
Os Pokémon criados deverão ser armazenados em um arquivo denominado pokemon.json
, que deverá ser criado na pasta raiz do projeto. Inicialmente, o conteúdo desse arquivo deve ser um vetor vazio:
[]
Quando um Pokémon é criado ou excluído, esse arquivo deverá ser atualizado.
O projeto deve ser entregue via e-mail em um arquivo no formato .zip
. O conteúdo do arquivo deve ser um pasta, dentro da qual deve-se encontrar:
- Fontes do projeto.
- Arquivo
packages.json
. - Arquivo
pokemon.json
. - Outros arquivos necessários para o funcionamento do projeto.
Observação: Excluir a pasta node_modules
antes de enviar o projeto.