O que é uma API RESTful?

Um dos tipos mais populares de API é o REST ou, como também são conhecidas, APIs RESTful. As APIs REST ou RESTful oferecem muitos benefícios — elas foram projetadas para aproveitar dos protocolos existentes. Embora o REST (Representational State Transfer) possa ser usado em praticamente qualquer protocolo, quando usado para APIs da web, ele normalmente aproveita o HTTP. Isso significa que os desenvolvedores não precisam instalar software ou bibliotecas adicionais ao criar uma API REST.

Uma das principais vantagens das APIs REST é que elas fornecem muita flexibilidade. Os dados não são vinculados a recursos ou métodos, então o REST pode atender a vários tipos de chamadas, retornar diferentes formatos de dados e até mesmo mudar estruturalmente com a implementação correta de hipermídia. Essa flexibilidade permite que os desenvolvedores criem uma API que atenda às suas necessidades e, ao mesmo tempo, atenda às necessidades de clientes muito diversos. 

Há 6 limitações importantes a serem consideradas ao analisar se uma API RESTful é o tipo de API ideal para as suas necessidades:

  • Cliente-servidor: essa restrição funciona no conceito de que o cliente e o servidor devem ser separados uns dos outros e autorizados a evoluir individualmente.
  • Sem estado: as APIs REST não têm estado, o que significa que as chamadas podem ser feitas de maneira independente, e cada chamada contém todos os dados necessários para se completar com sucesso.
  • Cache: como uma API sem estado pode aumentar a sobrecarga de solicitações ao lidar com grandes cargas de chamadas recebidas e enviadas, uma API REST deve ser projetada para incentivar o armazenamento de dados armazenáveis em cache.
  • Interface uniforme: o segredo para dissociar o cliente do servidor é ter uma interface uniforme que permita a evolução independente do aplicativo sem ter os serviços ou modelos e ações do aplicativo firmemente acoplados à própria camada de API.
  • Sistema em camadas: as APIs REST têm diferentes camadas da arquitetura trabalhando juntas para criar uma hierarquia que ajude a criar um aplicativo mais escalável e modular.
  • Code on Demand: permite que o código ou os applets sejam transmitidos por meio da API para uso dentro do aplicativo.

Ao contrário do SOAP, a REST não é restrita ao XML, mas pode retornar XML, JSON, YAML ou qualquer outro formato dependendo daquilo que o cliente solicitar. E, ao contrário do RPC, os usuários não são obrigados a conhecer nomes de procedimentos ou parâmetros específicos em uma determinada ordem.

Uma das desvantagens das APIs RESTful é que você pode perder a capacidade de manter o estado na REST, como dentro de sessões. Pode ser mais difícil para desenvolvedores mais novos utilizarem.

É importante entender o que faz uma API REST RESTful e porque essas restrições existem antes de criar sua API.