An Interest In:
Web News this Week
- April 18, 2024
- April 17, 2024
- April 16, 2024
- April 15, 2024
- April 14, 2024
- April 13, 2024
- April 12, 2024
[Desafio] - Integrao com Mltiplas APIs (scatter/gather)
Contedo original nessa thread do Twitter
Ei, dev!
Voc est prestes a aceitar o desafio mais legal de 2022! So 3 nveis de dificuldade pra todo mundo participar.
sobre uma aplicao de cotao financeira com integrao com outras APIs (que j fiz pra voc com muito carinho).
cc @sseraphini
Se voc estiver iniciando, seu desafio fazer uma integrao chamando uma API que devolve uma cotao fictcia. A chamada a seguinte:
GET /servico-a/cotacao?moeda=USD
Se quiser algo mais desafiador, faa chamadas para os servios A e B:
GET /servico-a/cotacao?moeda=USD
GET /servico-b/cotacao?curr=USD
Esses 2 servios tm um delay proposital pra que voc exercite fazer chamadas em paralelo (com promise, future, async, await, etc). De boa?
Os servios A e B tm retornos diferentes, tanto para chamadas invlidas (um retorna 400 e outro 422) quanto para as vlidas. Afinal, so servios diferentes.
Retorne a melhor cotao dentre os dois servios, ok?
Agora, se voc quiser sangue mesmo , integre tambm com o servio C! Ele tem um processamento assncrono que far um callback (webhook) para a URL que informar aps terminar a cotao.
O maior desafio na integrao com o servio C , a partir de um processo sncrono da sua parte (imagine voc disponibilizar uma API para a melhor cotao dentre as 3), tratar o retorno assncrono do servio C. Use o cid (correlation id) para isso.
O callback do servio C um POST para a URL que informar com o payload como na imagem.
(obs.: se estiver usando docker + ambiente local, use os endereos "especiais" http://172.17.0.1:(porta) ou http://host.docker.internal:(porta) pro docker conseguir acessar seu ambiente).
Bom, voc tem algumas opes para rodar essas APIs que fiz pra voc:
- Via docker (que o mais simples); ou
- Baixar e executar o cdigo hospedado no github.
(Essas 3 APIs, na verdade so apenas um codebase/imagem com 3 endpoints representando cada servio.)
Docker:
A imagem docker para esse desafio est disponvel no dockerhub e pra sair usando s executar:
docker run --rm -p 8080:80 zanfranceschi/desafio-01-cotacoes
https://hub.docker.com/repository/docker/zanfranceschi/desafio-01-cotacoes
Cdigo fonte:
Se quiser executar localmente, fazer modificaes, etc, est tudo disponvel no github.
https://github.com/zanfranceschi/desafio-01-cotacoes
Seria muito top se voc criasse um repositrio git com a sua integrao! E claro, como sempre, faa do jeito que voc quiser o importante sempre aprender se divertindo!
Muito obrigado se leu at aqui! Se curtiu essa desafio, d um RT no primeiro tweet, like e comenta!
Original Link: https://dev.to/zanfranceschi/desafio-integracao-com-apis-4jco
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To