Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
July 16, 2022 04:36 pm GMT

[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

img

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

img

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?

img

img

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.

Image

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).

Image

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

Image

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

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To