Rick and Morty Challenge
Desafio Rick and Morty: Most dimensional character ranking
- Como fãs de Rick and Morty, queremos uma API que nos ofereça algumas informações sobre os personagens. Neste desafio, a proposta é que você desenvolva uma API que retorne um ranking dos personagens que mais tem "doppelgangers", ou seja, personagens que têm mais versões diferentes dele em outros universos.
Para isso, você precisará consultar a base de personagens e os locais em que eles aparecem para descobrir. Essas informações estão disponíveis na (Rick and Morty API)[https://rickandmortyapi.com].
O retorno esperado da sua API pode ser algo como:
[{
"character": "Rick",
"image": "http://image_url",
"dimensions_count": 10
},
{
"character": "Morty",
"image": "http://image_url",
"dimensions_count": 6
}]
Requisitos
- Você precisa buscar essas informações na API para alimentar uma base local, com um modelo de dados que atenda ao propósito do desafio;
- Disponibilizar um endpoint para consulta dessas informações, fazer ordenação e filtrar, etc;
- Crie uma rotina que faça a atualização da sua base de dados 3 vezes ao dia;
- Precisamos de uma documentação da sua API para usá-la. Pense em utilizar o Swagger;
- Não esqueça de desenvolver os testes unitários. Considere usar o jest para cumprir essa missão;
- Vale observar que a Rick and Morty API tem uma limitação de requisições por dia, que está disponível em sua documentação.
Regras
- Por favor, tente resolver o teste sem ajuda de ninguém. Lembre-se de que discutiremos a solução pessoalmente;
- Pode usar o framework web que achar mais adequado para para construir API. Nós preferimos Express ou Restify, mas se for optar por outro, justifique sua escolha no README;
- Pode utilizar o banco de dados que quiser para fazer o teste;
- Se a aplicação tiver alguma complexidade extra para ser instalada/executada, incluir no README.md as instruções para setup;
- Vamos focar em avaliar o que foi proposto para o exercício, mas se não conseguir conter sua criatividade e quiser incrementar a aplicação, fique à vontade. Só não deixe de entregar o essencial. ;)
Entrega do projeto
- Crie uma aplicação nova para executar o desafio;
- Ao finalizar, suba a sua proposta para o projeto que você criou no GitHub Exemplo: https://github.com/seuNome/pet-code;
- Envie-nos o link do projeto. Exemplo: https://github.com/seuNome/test-nodejs.git
- Pronto! Basta aguardar o nosso RH entrar em contato. Entramos em contato rapidinho ;)
Solução
Rodando o projeto:
docker compose up
Documentação:
Testes
npm run test