Você precisa criar uma API que consulta CEP. Simples, certo?
Só que: você não controla as APIs externas. Elas caem, demoram, retornam erro. Seu serviço precisa continuar funcionando.
- ViaCEP:
https://viacep.com.br/ws/{cep}/json/ - BrasilAPI:
https://brasilapi.com.br/api/cep/v1/{cep}
GET /cep/{cep}
- Alterna entre as duas APIs (pode ser aleatório ou round-robin)
- Se uma falhar, tenta a outra automaticamente
- Retorna um contrato único, independente de qual API respondeu
-
Abstração — Como você isola os providers externos? Se amanhã adicionarmos uma terceira API, o que muda no código?
-
Resiliência — O que acontece quando uma API demora 30 segundos? E quando as duas estão fora?
-
Observabilidade — Se der erro em produção, como a gente descobre o que aconteceu?
-
Tratamento de erros — Erros diferentes devem ter tratamentos diferentes. Timeout não é a mesma coisa que 404.
NestJS + TypeScript. Fora isso, use o que fizer sentido.
- Frontend
- Banco de dados
- Deploy
- Cobertura de testes de 100%
Fork este repositório, implemente, e envie o link para [email protected] com o assunto Teste Dev - Monest.
Se o repositório for privado, adicione matheusmorett2 como colaborador.