O
surgimento das APIs revolucionou a
forma como acessamos dados no universo
da computação. A partir de então, foi
possível ter acesso remoto a qualquer
dado, independentemente de onde estivesse
armazenado. Hoje, ninguém precisa fazer uma cópia
dos dados do Facebook ou do Google Maps para ter os
mesmos dados que esses serviços possuem. Basta ter
acesso a uma API que entregue os dados na medida
em que são solicitados.
Ao mesmo tempo, o RESTFULL nos libertou do
“jardim murado” das tecnologias proprietárias,
permitindo que utilizássemos a melhor tecnologia
para determinado fim, o que fez “florescer” a
utilização de bancos de dados não relacionais. A
solução simples encontrada pelo
REST foi utilizar um protocolo verdadeiramente
universal – o HTTP – e um modelo de organização
lógica que é intuitivo e fácil de aprender.
Porém, o REST já começou a demonstrar sua
idade, na medida em que é cada vez maior o número
de dispositivos e sistemas que precisam consumir e
gravar dados por meio de APIs. Um dos problemas
mais comuns é a necessidade de executar múltiplas
chamadas à API para ter acesso a todos os dados que
são necessários para uma tarefa específica. Leve em
consideração o seguinte exemplo:
• uma chamada a user/:id retorna os dados relativos
ao usuário id como nome, e-mail, idade, etc.;
• uma chamada a user/:id/friends traz a
lista com os nomes e ids de todos os amigos
conectados ao usuário: id
Se eu, por acaso, quiser saber a média de idade
dos amigos de determinado usuário, precisarei fazer 1
chamada para buscar a listagem de amigos dele e mais
1 chamada para cada amigo nessa lista. No mínimo,
deveria haver uma forma mais fácil de
fazer algo do tipo.
Projetos como o Falcor e GraphQL, lançados
como “software livre” pela Netflix e pelo Facebook,
respectivamente, têm como objetivo resolver
justamente esse e outros problemas de acesso remoto
aos dados por meio de APIs.
Em ambos os casos, trata-se de um serviço que se
conecta diretamente a uma ou mais fontes de dados,
gerando um grafo e possibilitando que determinada
requisição solicite ao servidor apenas os dados dos
quais necessita.
Dentre outros cenários, projetos como esses
parecemmuito úteis no ambiente de microsserviços.
Imagine um cenário com um cliente web e diferentes
clientes mobile, e cada um deles precisa de uma versão
levemente diferente dos dados para compor a interface
que será apresentada para o usuário. Como cada um
dos clientes vai solicitar ao servidor exatamente aquilo
de que necessita, fica muito mais fácil manter e evoluir
a API sem que seja preciso utilizar diferentes versões,
mesmo que as necessidades mudem no futuro.
Kemel Zaidan
Evangelista de tecnologia
da Locaweb
@kemelzaidan
/kemelzaidan
O RESTFULL
está morto?
influenciador
20
20
REVISTA LOCAWEB
REVISTA LOCAWEB