Realidade Adaptável
Qual o papel das API na evolução da Web?
Resumo
O que é uma API? Como funciona? Hoje em dia, muitas das API existentes são direcionadas para a Web, oferecendo tecnologias que impulsionaram o aparecimento da Web 2.0 — uma ferramenta muito mais acessível a todos os utilizadores. Agora, a Web 3.0 aponta na direção de uma realidade ainda mais adaptável, com capacidades de otimização e ajuste a qualquer condição de acessibilidade de cada utilizador no mundo… Que impacto poderão ter as API na futura evolução da Web que hoje conhecemos?
O que é uma API e como funciona?
Ouviste falar do Spotify e ficaste curioso. Instalas a aplicação e, no momento de criar uma nova sessão, tens preguiça — acabas por fazer login com a tua conta do Facebook. Mas já paraste para pensar como é que é possível o Spotify ter acesso a estes teus dados? Será isto uma falha de segurança entre aplicações? Obviamente, a resposta é não. Do que se trata então? Uma pista: este é apenas um exemplo de uma API.
Uma API ou Application Programming Interface, é um conjunto de normas que ditam a comunicação entre duas aplicações através de determinados padrões definidos. As API permitem que certos serviços comuniquem com outros sem ser necessário ter conhecimento de como foram implementados e sem comprometer a segurança. No caso descrito acima, o login é feito através de uma API do Facebook que verifica, primeiro, se o utilizador tem uma sessão iniciada no próprio Facebook e, caso não tenha, pede para o fazer. Ou seja, a API fornece um serviço de autenticação que pode ser utilizado por outras aplicações, como o Spotify, evitando a necessidade de implementar um sistema próprio com toda a complexidade que implica ao nível da segurança dos nossos dados — muito mais simples, certo?
Como podes ver, as API estão aqui para nos ajudar — principalmente nos dias de hoje, tão apressados, onde a rapidez e descomplicação são elementos-chave. Contudo, estas nem sempre funcionaram de tal forma, muito menos eram acessíveis a qualquer pessoa. Quando as primeiras API apareceram, eram usadas, maioritariamente, como bibliotecas locais. Só mais tarde surgiu a sua importância na agregação de dados de forma remota, sendo muito aplicadas na Web. Atualmente, as API Web constituem o tipo de API mais comum e, à medida que se desenvolveram, foram-se tornando cada vez mais úteis. Estas acabam por ser uma espécie de intermediário entre a aplicação e o servidor Web — um utilizador faz um pedido à API, que o comunica à aplicação e que, por sua vez, o comunica ao servidor — tal como ilustrado na figura abaixo.
API Web: SOAP e REST
Aprofundando o funcionamento das API Web, estas solicitam, por norma, mensagens HTTP, retornando a informação pedida em formatos como JSON, XML ou HTML. A sua evolução — tendo-se tornado as API mais simples, mas, ao mesmo tempo, mais úteis — deve-se ao desenvolvimento de abordagens como o SOAP e o REST. Uma coisa é certa: não estou a escrever acerca de sabão nem de descanso, portanto, em que consistem estes dois termos?
Por um lado, o SOAP ou Simple Access Protocol, é um protocolo utilizado pelas API Web para a comunicação entre aplicações. Sendo relativamente antigo, constitui uma abordagem mais padronizada e detalhada, porém, apesar de ter o objetivo de simplificar a comunicação, acaba por se tratar de um serviço que requer ainda alguma preparação prévia para devolver informação. Assim, por outro lado, o REST ou Representational State Transfer, é um estilo de arquitetura que segue princípios que acabam por ser muito mais simples do que este protocolo padrão. Esta faz uso do URL, permitindo, deste modo, que os browsers devolvam informação dos servidores Web através de determinados métodos, como, por exemplo, o GET e o POST.
Portanto, o SOAP e o REST, apesar de semelhantes em resultado, têm características distintas e cabe a cada um de nós decidir qual o mais adequado de acordo com a situação presente. No entanto, relativamente à Web, é de notar uma grande vantagem na arquitetura REST devido à sua melhor performance — é mais rápida, ocupa menos banda larga e a sua integração nos websites é mais fácil. Devido a esta simplicidade e eficácia, as API REST tornaram-se mais relevantes do que as API SOAP, as quais têm vindo a ser menos usadas uma vez que não acompanham a flexibilidade da evolução da Web.
O aparecimento da Web 2.0
De que forma evoluiu a Web até àquilo que conhecemos e qual o papel das API nesse processo? Comecemos pelo início, embarcando no primeiro conceito de Web na História: a World Wide Web ou Web 1.0.
Quando a Internet surgiu, não era acessível a todos como é hoje. A criação da Web 1.0 disseminou o seu alcance por todo o mundo, contudo, esta consistia numa Web estática de leitura, acabando por atingir um público-alvo ainda algo segmentado — até ser introduzido um novo paradigma de consumo. Assim surgiu a Web 2.0, uma revolução na indústria que permitiu a criação de novas dinâmicas de negócio e serviços, integrando na Web não só a informação, mas também a interação existente no mundo real. Os motores principais desta Web atual são, portanto, a flexibilidade e a interação — desde redes sociais a wikis, o seu objetivo final é mobilizar grandes quantidades de informação dinamicamente, através da participação dos próprios utilizadores.
Na Web 2.0, as API estão presentes em todo lado, sendo que vários componentes que a constroem integram, em grande parte, API REST desenvolvidas em diversas linguagens, como o PHP. Este combustível parece-te escasso? Calma! Claro que o motor, sedento por informação, que move esta Web não se alimenta sozinho. Propulsionando o funcionamento da máquina, estas API passaram, muitas vezes, a combinar informações de mais do que duas aplicações, gerando aplicações “híbridas” — um mashup de diferentes tipos de dados. O conceito de API Mashup teve um grande impacto no desenvolvimento da Web 2.0 como uma ferramenta universal de troca de informação e conhecimento.
Fazendo uso de Mashups, os developers passaram a poder reutilizar recursos de N fontes e combiná-los, oferecendo ao utilizador novos contextos ou até serviços de valor superior. Com isto, as API Web, e mais concretamente, as API Mashup acabaram por servir o propósito idealizado para a evolução da Web: sendo aplicações “compostas” e user-directed, combinam informação de várias aplicações e tornam a Internet flexível e acessível a grande parte dos seus utilizadores no mundo — uma das características principais da Web 2.0.
O futuro das API na Web
Agora, em relação ao futuro, apenas podemos especular. Será que as API REST continuarão a ter o mesmo valor na próxima Web? Eu diria que não. Apesar da inovação que estas API trouxeram à Web 2.0, ao longo dos últimos anos têm mostrado alguma inflexibilidade quando deparadas com a constante e rápida evolução da Web e com o aumento dos requisitos por parte do Homem. Uma das suas principais falhas é o facto de um único pedido com várias vertentes, feito pelo utilizador, ter de ser traduzido em pedidos múltiplos pelas API REST, devolvendo os dados separadamente. A longo-termo, tal revela-se ineficiente e, quase certamente, não conseguirá acompanhar o aparecimento da Web 3.0, que tanto promete…
…ou, pelo menos, que tanto pensamos prometer. Ninguém sabe exatamente o que poderá ser esta Web 3.0 e, atualmente, existem especulações com diferentes interpretações. A meu ver, a Web 3.0 poderá constituir uma Web inteligente omnipresente. Isto é, uma experiência totalmente personalizada, com capacidade automática para analisar todos os nossos dados e hábitos de uso. Tal visa uma otimização da experiência fornecida pelos websites e uma escolha das decisões mais adequadas por parte dos dispositivos — ainda mais do que aquilo que já experienciamos nos dias de hoje, por exemplo, com a Inteligência Artificial e o Machine Learning.
Ou seja, a Web 3.0 poderá ser uma Web Semântica focada nos dados e, ao mesmo tempo, direcionada para o utilizador — apelativo, certo? Mas como posso ter tanta certeza de que as próprias API REST não conseguem evoluir neste mesmo sentido? De facto, certezas não existem. Contudo, a atual demanda por informação e por uma Web melhorada é tanta, que já começaram a ser desenvolvidas alternativas às REST, como é o caso do GraphQL. As API GraphQL utilizam uma linguagem query capaz de fazer uma associação semântica entre entidades, de modo a devolverem diversos recursos num único pedido, ao contrário das API REST — pelo que, comparativamente, as API GraphQL já constituem, hoje, uma ferramenta muito mais eficaz, rápida e promissora.
É este o panorama em que nos encontramos. Independentemente do tipo de API, podemos admitir que estas foram uma mais-valia na Web e continuarão a sê-lo durante muito tempo. Talvez o GraphQL venha a ter as características necessárias para impactar, de alguma forma, a Web 3.0, assim como os Mashups foram um aspeto fulcral na anterior. Ou talvez surjam novos conceitos de API no futuro que mudem completamente os ideais atuais… Por enquanto, vamos apreciar o que temos — aproveita o Spotify que instalaste no início com a ajuda da API do Facebook!
Referências
What is an API?
How do APIs Work?
Is REST better than SOAP? Yes, in Some Use Cases
What is a REST API? Examples, Uses and Challenges
The Web 2.0: Mashups Driven and Web Services
What is Web 3.0 & Why It Matters
What is Web 3.0?
A history and future of Web APIs
GraphQL vs REST: What You Need to Know
GraphQL vs REST: Which One Is Better?