O que é REST?
Em um alto nível, a transferência de estado representacional (REST) é uma arquitetura de software que impõe condições sobre como uma API deve funcionar. O REST foi criado inicialmente como uma diretriz para gerenciar a comunicação em uma rede complexa como a Internet. Você pode usar a arquitetura baseada em REST para oferecer suporte à comunicação confiável e de alto desempenho em grande escala. Você pode facilmente implementá-la e modificá-la, trazendo visibilidade e portabilidade multiplataforma para qualquer sistema de API.
Os desenvolvedores de API podem criar APIs usando várias arquiteturas diferentes. As APIs que seguem o estilo de arquitetura REST são chamadas de APIs REST. Os serviços Web que implementam a arquitetura REST são chamados de serviços Web RESTful. O termo API RESTful geralmente refere-se às APIs web RESTful. No entanto, você pode usar os termos API REST e API RESTful de forma intercambiável.
Veja a seguir alguns dos princípios do estilo de arquitetura REST:
Interface uniforme
A interface uniforme é fundamental para o design de qualquer serviço web RESTful. Isso indica que o servidor transfere informações em um formato padrão. O recurso formatado é chamado de representação em REST. Esse formato pode ser diferente da representação interna do recurso no aplicativo do servidor. Por exemplo, o servidor pode armazenar dados como texto, mas os envia em um formato de representação HTML.
A interface uniforme impõe quatro restrições de arquitetura:
-
As solicitações devem identificar os recursos. Elas fazem isso usando um identificador de recurso uniforme.
-
Os clientes têm informações suficientes na representação do recurso para modificar ou excluir o atributo, se quiserem. O servidor atende a essa condição enviando metadados que descrevem melhor o atributo.
-
Os clientes recebem informações sobre como processar ainda mais a representação. O servidor consegue isso enviando mensagens autodescritivas que contêm metadados sobre como o cliente pode melhor usá-las.
-
Os clientes recebem informações sobre todos os outros recursos relacionados de que precisam para concluir uma tarefa. O servidor consegue isso enviando hiperlinks na representação para que os clientes possam descobrir dinamicamente mais recursos.
Ausência de estado
Na arquitetura REST, a ausência de estado refere-se a um método de comunicação no qual o servidor conclui todas as solicitações do cliente, independentemente de todas as solicitações anteriores. Os clientes podem solicitar recursos em qualquer ordem, e cada solicitação é sem estado ou isolada de outras solicitações. Essa restrição de design da API REST implica que o servidor possa sempre entender e atender completamente à solicitação.
Sistema em camadas
Em uma arquitetura de sistema em camadas, o cliente pode se conectar a outros intermediários autorizados entre o cliente e o servidor e ainda receberá respostas do servidor. Os servidores também podem transmitir solicitações para outros servidores. Você pode projetar seu serviço web RESTful para ser executado em vários servidores com várias camadas, como segurança, aplicação e lógica de negócios, trabalhando em conjunto para atender às solicitações dos clientes. Essas camadas permanecem invisíveis para o cliente.
Capacidade de armazenamento em cache
Os serviços web RESTful permitem armazenamento em cache, que é o processo de armazenar algumas respostas no cliente ou em um intermediário para melhorar o tempo de resposta do servidor. Por exemplo, suponha que você acesse um site que tenha imagens de cabeçalho e rodapé comuns em todas as páginas. Toda vez que você acessa uma nova página do site, o servidor precisa reenviar as mesmas imagens. Para evitar isso, o cliente armazena essas imagens em cache após a primeira resposta e, em seguida, usa as imagens diretamente do cache. Os serviços web RESTful controlam o armazenamento em cache usando respostas de API que se definem como armazenáveis em cache ou não.
O que é uma API RESTful?
A API RESTful é uma interface que dois sistemas de computador usam para trocar informações com segurança pela Internet. A maioria dos aplicativos empresariais precisa se comunicar com outros aplicativos internos e de terceiros para realizar várias tarefas. Por exemplo, para gerar holerites mensais, seu sistema interno de contas precisa compartilhar dados com o sistema bancário do cliente para automatizar o faturamento e se comunicar com um aplicativo interno de planilha de horas. As APIs RESTful permitem essa troca de informações porque seguem padrões de comunicação de software seguros, confiáveis e eficientes.
Como as APIs RESTful funcionam?
A função básica de uma API RESTful é a mesma de navegar na Internet. O cliente entra em contato com o servidor usando a API quando precisa de um recurso. Os desenvolvedores de API explicam como o cliente deve usar a API REST na documentação da API do aplicativo de servidor. Estas são as etapas gerais para qualquer chamada da API REST:
-
O cliente envia a seguinte solicitação ao servidor. O cliente segue a documentação da API para formatar a solicitação de uma forma que o servidor entenda.
-
O servidor autentica o cliente e confirma que o cliente tem o direito de fazer essa solicitação.
-
O servidor recebe a solicitação e a processa internamente.
-
O servidor retorna uma resposta para o cliente. A resposta contém informações que informam ao cliente se a solicitação foi bem-sucedida. A resposta também inclui todas as informações solicitadas pelo cliente.
Os detalhes da solicitação e da resposta da API REST variam um pouco, dependendo de como os desenvolvedores da API projetam a API.