Quando uma API atende aos padrões propostos pelo estilo de arquitetura REST, ela pode ser caracterizada como uma API RESTful. Uma API deste tipo é especialmente útil para aplicações em nuvem.

Uma API (Interface de Programação de Aplicações, na sigla em inglês), é um conjunto de padrões e protocolos que integram um usuário a uma aplicação, permitindo que ele acesse e faça uso das funcionalidades do software em questão. 

Uma API funciona como um mediador, ou comunicador, entre o usuário e o sistema. Deste modo, ela facilita o acesso e o desenvolvimento de aplicações para a internet. 

Vale lembrar que esta interoperabilidade oferecida por uma API ocorre tanto entre aplicação e usuário, quanto entre diferentes aplicações. Isso acontece sem exigir que a parte que está acessando o sistema tenha conhecimento dos detalhes de desenvolvimento e implementação do software em questão.

Agora que você sabe o que é uma API, vamos descobrir o que faz com que uma API seja do tipo REST, já que elas podem ser de diferentes tipos.

A abreviatura REST se refere a Representational State Transfer (Transferência de Estado Representacional) e é um tipo de arquitetura de software. Uma REST indica então um conjunto de restrições que devem ser seguidas no desenvolvimento de uma aplicação na internet.

Estas regras permitem o desenvolvimento de uma aplicação com interface bem definida, com rotinas padronizadas e facilmente representadas, que facilitam a comunicação entre máquinas e usuários.

O Que é uma API RESTful e Porque Isso Importa

Neste tutorial vamos mostrar o que é uma API, o que faz com que ela passe a ser uma API RESTful e quais os princípios e as funções necessárias para que isso aconteça. 

Uma API promove a conexão entre um usuário e uma aplicação, mas sem que ele precise dos detalhes da estrutura e do desenvolvimento do sistema que está tentando utilizar. A categoria REST apresenta alguns critérios específicos, que visam padronizar e flexibilizar essa comunicação entre diferentes plataformas. 

Quando uma API atende aos padrões propostos pelo estilo de arquitetura REST, ela pode ser caracterizada como uma API RESTful. Uma API deste tipo é especialmente útil para aplicações em nuvem.

Agora passaremos a analisar alguns detalhes e a entender estes conceitos com mais profundidade. Vamos lá!

O Que É API

Uma API (Interface de Programação de Aplicações, na sigla em inglês), é um conjunto de padrões e protocolos que integram um usuário a uma aplicação, permitindo que ele acesse e faça uso das funcionalidades do software em questão. 

Uma API funciona como um mediador, ou comunicador, entre o usuário e o sistema. Deste modo, ela facilita o acesso e o desenvolvimento de aplicações para a internet. 

Vale lembrar que esta interoperabilidade oferecida por uma API ocorre tanto entre aplicação e usuário, quanto entre diferentes aplicações. Isso acontece sem exigir que a parte que está acessando o sistema tenha conhecimento dos detalhes de desenvolvimento e implementação do software em questão.

O Que Faz uma API ser do Tipo REST

Agora que você sabe o que é uma API, vamos descobrir o que faz com que uma API seja do tipo REST, já que elas podem ser de diferentes tipos.

A abreviatura REST se refere a Representational State Transfer (Transferência de Estado Representacional) e é um tipo de arquitetura de software. Uma REST indica então um conjunto de restrições que devem ser seguidas no desenvolvimento de uma aplicação na internet.

Estas regras permitem o desenvolvimento de uma aplicação com interface bem definida, com rotinas padronizadas e facilmente representadas, que facilitam a comunicação entre máquinas e usuários.

REST API do WordPress

Vamos agora conhecer as restrições de arquitetura que caracterizam uma API RESTful:

  • Arquitetura cliente-servidor: indica uma arquitetura baseada em clientes, servidores e recursos, em que as solicitações são feitas via protocolo HTTP. Essa condição está ligada à independência entre o cliente e o servidor. Ou seja, mudanças feitas pelo usuário na aplicação em seu dispositivo não devem afetar o servidor e sua estrutura de dados. De mesmo modo, alterações feitas pelos desenvolvedores nos bancos de dados da aplicação não devem instantaneamente impactar o dispositivo do usuário.
  • Comunicação stateless: a comunicação feita entre cliente e servidor não deve armazenar nenhuma informação entre as solicitações. Em uma REST API, cada solicitação contém todos os dados necessários para que seja atendida, não dependendo de informações já armazenadas em outras sessões.
  • Cache: uma API REST deve ser desenvolvida de modo que consiga armazenar dados em cache. Quando uma informação fica armazenada em cache, as solicitações e respostas entre cliente e servidor são otimizadas.
  • Interface uniforme: a interface uniforme é o que permite o desenvolvimento independente da aplicação entre usuário e servidor. Uma REST API deve conter uma interface uniforme pois ela oferece uma comunicação padronizada entre o usuário e o software. A manipulação de recursos através de representações (como JSON ou XML), é uma das condições para o desenvolvimento de uma interface uniforme.
  • Sistema de camadas: cada camada do sistema deve possuir uma funcionalidade específica (como segurança ou carregamento). Assim, cada camada é responsável por uma etapa diferente dos processos de requisição de usuário e de resposta do servidor. Essas camadas são ordenadas hierarquicamente mas, apesar de serem separadas, todas interagem entre si.

Como Funcionam as APIs RESTful

Uma API RESTful funciona através da manipulação de recursos e representações. Essas representações são trocadas entre os usuários e o servidor através de uma interface padronizada e de um protocolo de comunicação específico — geralmente o HTTP. 

Assim, quando um usuário deseja usar uma funcionalidade da aplicação, seu dispositivo envia uma solicitação via HTTP ao servidor. O servidor localiza o recurso e comunica a representação do estado dele na resposta ao usuário através do mesmo protocolo. E são essas representações que podem ser feitas em diversos formatos.

As solicitações da aplicação requerem a execução de alguma função padrão no banco de dados do sistema. Por exemplo, a API RESTful envia ao servidor, via HTTP, uma requisição para executar uma função básica, como deletar o usuário “Pedro” da lista de usuários. A solicitação enviada nesse exemplo, seria a seguinte: 

DELETE http://www.meusite.com.br/usuarios/pedro

As operações utilizadas para acessar os recursos são padronizadas e bem definidas, além do comando DELETE, existem outros, como http GET e POST que solicitam, respectivamente, a recuperação e a criação de um recurso ou usuário.

Em termos de nomenclatura, é importante sabermos a diferença entre os conceitos de REST e RESTful. 

Como já definimos anteriormente, REST é um conjunto de princípios e restrições de arquitetura de softwares

Uma API RESTful é aquela que está em conformidade com os critérios estabelecidos pela Transferência de Estado Representacional (REST).

Assim, quando uma API é do tipo RESTful, significa que esse sistema consegue aplicar os princípios propostos por Roy Fielding em sua tese REST.