Jump to section

O que é uma API REST?

Copiar URL

API REST, também conhecida como API RESTful, é uma API (interface de programação de aplicações) em conformidade com as restrições do estilo de arquitetura REST, permitindo a interação com serviços web RESTful. REST é a sigla em inglês para "Representational State Transfer", que em português significa "tansferência de estado representacional". Essa arquitetura foi criada pelo cientista da computação norte-americano Roy Fielding.

Novo ebook: Manual do proprietário de API

O que são APIs? Para que elas servem?

Uma API é um conjunto de definições e protocolos usado no desenvolvimento e na integração de aplicações. Às vezes, APIs são descritas como um contrato entre um provedor e um usuário de informações, estabelecendo o conteúdo exigido pelo consumidor (a chamada) e o conteúdo exigido pelo produtor (a resposta). 

Por exemplo, o design da API de um serviço meteorológico pode especificar que o usuário forneça um CEP e o produtor responda em duas partes, a primeira contendo a temperatura mais elevada e a segunda com a temperatura mais baixa.  

Em outras palavras, ao interagir com um computador ou sistema para recuperar informações ou executar uma função, a API ajudará a comunicar o que você quer ao sistema para que ele entenda e realize o que foi solicitado. 

Pense nas APIs como um mediador entre os usuários ou clientes e os recursos ou serviços web que eles querem obter. As APIs também servem para que organizações compartilhem recursos e informações e, ao mesmo tempo, mantenham a segurança, o controle e a obrigatoriedade de autenticação por permitirem determinar quem tem acesso e o que pode ser acessado. 

Outra vantagem de usar APIs é que não é necessário saber todos os detalhes sobre o armazenamento em cache, como os recursos são recuperados ou qual é a origem deles.

Red Hat OpenShift API Management

Aumente a produtividade do desenvolvedor e entregue novas aplicações com mais rapidez com uma abordagem que prioriza APIs.

REST não é um protocolo ou padrão, mas sim um conjunto de restrições de arquitetura. Os desenvolvedores de API podem implementar a arquitetura REST de maneiras variadas.

Quando um cliente faz uma solicitação usando uma API RESTful, essa API transfere uma representação do estado do recurso ao solicitante ou endpoint. Essa informação (ou representação) é entregue via HTTP utilizando um dos vários formatos possíveis: Javascript Object Notation (JSON), HTML, XLT, Python, PHP ou texto sem formatação. O formato JSON é a linguagem de programação mais usada porque, apesar de seu nome, é independente de qualquer outra linguagem e pode ser lido por máquinas e humanos. 

Lembre-se também de que cabeçalhos e parâmetros são importantes nos métodos HTTP de uma solicitação HTTP de API RESTful porque contêm informações relevantes sobre o identificador, bem como metadados, autorização, Uniform Resource Identifier (URI), cache, cookies e outras informações da solicitação. Há os cabeçalhos da solicitação e os cabeçalhos da resposta, cada um contendo as informações de suas respectivas conexões HTTP e códigos de status.

Para uma API ser considerada do tipo RESTful, ela precisa está em conformidade com os seguintes critérios:

  • Ter uma arquitetura cliente/servidor formada por clientes, servidores e recursos, com solicitações gerenciadas por HTTP.
  • Estabelecer uma comunicação stateless entre cliente e servidor. Isso significa que nenhuma informação do cliente é armazenada entre solicitações GET e toda as solicitações são separadas e desconectadas.
  • Armazenar dados em cache para otimizar as interações entre cliente e servidor.
  • Ter uma interface uniforme entre os componentes para as informações serem transferidas em um formato padronizado. Para tanto, é necessário que:
    • Os recursos solicitados sejam identificáveis e estejam separados das representações enviadas ao cliente;
    • Os recursos possam ser manipulados pelo cliente por meio da representação recebida com informações suficientes para tais ações;
    • As mensagens autodescritivas retornadas ao cliente contenham informações suficientes para descrever como processá-las;
    • Hipertexto e hipermídia estão disponíveis. Isso significa que após acessar um recurso, o cliente pode usar hiperlinks para encontrar as demais ações disponíveis para ele no momento.
  • Ter um sistema em camadas que organiza os tipos de servidores (responsáveis pela segurança, pelo carregamento de carga e assim por diante) envolvidos na recuperação das informações solicitadas em hierarquias que o cliente não pode ver.
  • Possibilitar código sob demanda (opcional): a capacidade de enviar um código executável do servidor para o cliente quando solicitado para ampliar a funcionalidade disponível ao cliente. 

Embora uma REST API precise estar em conformidade com os critérios acima, ela é considerada mais fácil de usar do que um protocolo prescrito, como o Protocolo Simples de Acesso a Objetos (SOAP). Esse tipo de protocolo tem requisitos específicos, como o sistema de mensageria XML, além de precisar cumprir com exigências de segurança incorporada e transações, o que o torna mais lento e pesado. 

Em comparação, a arquitetura REST é composta de um conjunto de diretrizes que podem ser implementadas conforme necessário. Isso faz com que as APIs REST sejam mais rápidas, leves e escaláveis, o que é ideal para a Internet das Coisas (IoT) e o desenvolvimento de aplicativos mobile

Red Hat® Integration é uma solução orientada a APIs que proporciona conectividade de aplicações, transformação de dados, composição e orquestração de serviços, streaming de mensagens em tempo real, coleta de dados de mudanças e gerenciamento de APIs. Tudo isso em um único lugar para conectar aplicações e dados em infraestruturas híbridas. Essa solução é combinada a uma plataforma nativa em nuvem e uma cadeia de ferramentas para viabilizar o desenvolvimento de aplicações modernas. 

Red Hat 3scale API Management é um componente do Red Hat Integration que permite compartilhar, distribuir, controlar e monetizar APIs em uma plataforma de infraestrutura desenvolvida para proporcionar alto desempenho, controle, segurança e crescimento. Implemente os componentes do 3scale on-premise, na nuvem ou em ambos. 

Leitura recomendada

Artigo

O que é uma API?

API significa interface de programação de aplicações, um conjunto de definições e protocolos para criar e integrar softwares de aplicações.

Artigo

Qual é a função de um gateway de API?

O gateway de API é uma ferramenta de gerenciamento de interfaces de programação de aplicações (APIs) que fica entre o cliente e uma coleção de serviços de back-end.

Artigo

Por que escolher a Red Hat para o uso de APIs?

Nossas soluções de API se concentram na capacidade de reutilização, agilidade da TI e interface de gerenciamento para você avaliar, monitorar e escalar.