Faça a requisição de 95 posts, de 20 em 20 posts por request, da URL https://jsonplaceholder.typicode.com/posts, a documentação da paginação está aqui https://github.com/typicode/json-server#paginate. Estas requisições devem ser feitas sequencialmente (só requisita os próximos 20 depois que terminar de requisitar tudo dos 20 anteriores)
Para cada vez que 20 posts forem carregados, carregar todos os comentários de cada um deles de maneira concorrente/paralela (ou seja, requisitar os comentários de todos os 20 posts ao mesmo tempo). Para pegar os comentários de um post você usa a URL https://jsonplaceholder.typicode.com/posts/ID_DO_POST/comments. Isso deve ser feito antes de carregar os próximos 20 posts.
Após carregar todos os posts, carregar os usuários de todos os 95 posts concorrentemente/paralelamente. Para carregar um usuário usa-se a URL https://jsonplaceholder.typicode.com/users/ID_DO_USUARIO. Lembrando que um mesmo usuário pode ter mais de um post, então o mesmo usuário não deve ser carregado duas vezes
No final, precisaremos ter a seguinte estrutura:
[
{
/* ...dados do post, /
user: {}/ dados do user autor do post /,
comments: []/ array de comentários desse post */
}
]
Escrever testes.
- Implemente o desafio duas vezes:
- Utilizando somente
async
/await
- Somente com
.then
/.catch
- Utilizando somente
- Caso tenha utilizado recursão em alguma das implementações, tente agora sem recursão
- Escreva testes
- Os testes de uma implementação devem funcionar na outra sem nenhuma modificação