O que é a API REST?
Pablo Rojas
16 Sep. 2016

Atualmente, é comum o uso de uma “API REST”, seja no front-end ou no back-end. Mas afinal, o que é a REST?

REST (Representational State Transfer) é uma arquitetura de software, que conta já com mais de 15 anos, intimamente relacionada com o protocolo HTTP, em que tudo é tratado como um recurso. Nesta arquitetura, o cliente e o servidor comunicam trocando recursos (dados) através de petições, sem manter ou lembrar estados de um recurso específico: isto significa que cada pedido é independente.

O facto de não ter de manter dados do estado de cada recurso, nem de pedidos passados, proporciona aos serviços REST uma melhor performance, mais potente e mais eficaz que outros serviços web como os SOAP (Simple Object Access Protocol).

Se o serviço tem mais de 10 anos, porque é tão popular agora?

O crescimento dos serviços Web, a expansão da sua utilização e a diversidade de clientes (dispositivos) de hoje fizeram com que os serviços SOAP se tornassem mais ineficazes, devido à sua complexidade. Entretanto, os serviços REST vieram simplificar a manipulação e transporte de dados, o que lhes conferiu uma vantagem relativamente aos primeiros.

Podemos dizer que os serviços REST têm as seguintes características:

  • Tudo é um recurso.
  • Qualquer recurso deve ter um identificador único e ser acessível a partir de um URL.
  • A manipulação dos recursos é realizada utilizando métodos HTTP.
  • Os recursos podem ter múltiplas representações.
  • As comunicações são “Stateless”, ou seja, cada pedido é independente e o servidor não guarda dados de pedidos anteriores.

Características como estas são precisamente aquelas que fizeram com que os serviços REST emergissem como a principal escolha de estilo para API, usando JSON como formato de dados típico, e que os serviços SOAP, baseados em serviços, perdessem terreno.

A principal vantagem do uso de REST reside no seu desempenho e escalabilidade.

O facto de este serviço ter grandes quantidades de dados acessíveis a grandes quantidades de utilizadores torna-se muito importante para que este consiga ter a capacidade de escalar facilmente, e assim aumentar o número de pedidos que pode tratar. Isto torna-se quase impossível para serviços que guardam dados dos estados de cada recurso ou de pedidos anteriores, especialmente quando é necessário um tempo de resposta rápido.

Desta forma, a gestão de recursos Stateless torna-se crucial para quem pretende manter uma capacidade de escalabilidade rápida. Não devemos confundir escalabilidade com desempenho: o desempenho refere-se ao tempo que leva a servir um único pedido, enquanto a escalabilidade se refere ao número de pedidos com que uma aplicação pode lidar.

Escalar um serviço REST é relativamente simples e rápido; é possível migrá-lo para outros servidores ou fazer alterações de todo o tipo na base de dados, sempre que os dados de cada um dos pedidos sejam enviados corretamente.

Tudo isto faz dos serviços REST uma das melhores e mais populares escolhas no momento de implementar uma API atualmente.