APIs e Microsserviços

21 out, 2017

InterCon 2017 – Design Coerente: decisões de tecnologia para APIs

Publicidade

A trilha Ada Lovelace também recebeu o desenvolvedor e Senior/ScrumMaster na Leroy Merlin Brasil, Ravan Scafi, que encontrou um ambiente cheio, com pessoas sentadas na frente do palco para assistir sua apresentação.

Ravan começou a apresentação falando sobre Interface, que é um elemento que proporciona uma ligação física ou lógica entre dois sistemas ou partes dentro de uma tecnologia.

Rest

O Rest é baseado em endpoits, para consultar ou armazenar dados. Podemos separar endpoints por recursos. Ele estabelece uma relação cliente-servidor, também seguindo as convenções HTTP.

“O legal do Rest, é que você pode explorar diferentes tipos de cache. Ele também é uniforme e é feito para durar décadas”. – Ravan Scafi

Problemas do Rest

Utilizar o Rest pode trazer algumas desvantagens. Scafi listou algumas:

  • Recomendações nem sempre são seguidas
  • Excesso de Roundtrips dependendo da operação
  • Nem sempre os Verbos HTTP disponíveis falam com clareza
  • Operações “BULK” fogem do Padrão

Para resolver, um dos caminhos é utilizar o RPC (Remote Procedure Recall), que foi popularizado pelo SOAP. Ele pode ser baseado em JSON. O RPC tem como foco a operação. Scafi deu um exemplo muito interessante, o mecanismo de buscas Google, que realiza 10 bilhões de chamadss em um segundo. Vale lembrar que uma biblioteca open source, baseada em HTTP 2, foi disponibilizada pela Google.

O RPC também possui alguns problemas, sendo eles:

  • Abstrai complexidade, podendo gerar atrasos na rede
  • Pode complicar mais do que se não estivesse presente

Bruno apresentou nos slides o crescimento da API do Soundcloud e como a BFF pode ajudar a resolver uma distribuição e organização de uma API que cresceu exponencialmente. Já o Netflix, possui uma API geral que é distribuída com uma facilidade maior.

“Você pode usar mais de uma solução, mas por favor, não na mesma API. Versionamento é sempre díficil e não existe bala de prata, devemos conhecer nossos dados e nossos clientes. Empatia é a palavra chave. Devemos ser capazes de sentir o que nossos clientes sentem e desejar o que eles desejam”. – Ravan Scafi

Para encerrar, ele explicou os problemas da API BFF e do Rest, e como podemos contorna-los e trouxe algumas vantagens pontuais do GraphQL, que foi tema de uma das apresentações da InterCon 2017 na parte da manhã.