O que é uma API REST?

Copiar URL

API REST é uma interface de programação de aplicações (API) que segue os princípios de design da arquitetura REST. REST é a sigla para "representational state transfer" ("transferência de estado representacional", em português), um conjunto de regras e diretrizes sobre como você deve criar uma API web.

Como capitalizar APIs REST

Uma API é um conjunto de definições e protocolos utilizados no desenvolvimento e na integração de software de aplicações. As APIs são frequentemente descritas como um contrato entre o  provedor e o consumidor de informações, definindo o que é exigido na requisição (por parte do consumidor) e o que será entregue na resposta (por parte do provedor). 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 com a temperatura mais alta e a segunda com a mais baixa.  

Em outras palavras, se você quer interagir com um computador ou sistema para recuperar informações ou executar uma função, uma API ajuda a comunicar o que você deseja a esse sistema para que ele possa compreender e atender à solicitação. 

Você pode pensar em uma API como um mediador entre os usuários ou clientes e os recursos ou serviços web que eles desejam obter. Também é uma maneira da organização compartilhar recursos e informações enquanto mantém a segurança, o controle e a autenticação, determinando quem tem acesso a quê. 

Outra vantagem de uma API é que você não precisa saber detalhes sobre o armazenamento em cache, ou seja, como seu recurso é recuperado ou de onde ele vem.

Mais informações sobre APIs

Recursos da Red Hat

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

Quando uma solicitação de cliente é feita por uma API RESTful, ela transfere uma representação do estado do recurso para o solicitante ou endpoint. Essa informação, ou representação, é entregue em um de vários formatos, via HTTP: JSON (Javascript Object Notation), HTML, XLT, Python, PHP ou texto simples. O JSON é o mais usado porque, apesar de seu nome, ele é um formato independente de linguagem e pode ser lido por máquinas e humanos. 

Algo importante a considerar:  headers  e parâmetros também são essenciais nos  métodos HTTP  de uma  API RESTful, pois contêm  identificadores fundamentais para os  metadados da requisição, autorização, URI, cache, cookies e outros Os cabeçalhos de solicitação e resposta têm suas próprias informações de conexão HTTP e códigos de status.

Para que uma API seja considerada RESTful, ela deve estar em conformidade com os seguintes critérios:

  • Arquitetura cliente-servidor composta por clientes, servidores e recursos, com solicitações gerenciadas por HTTP.
  • Comunicação stateless entre cliente e servidor significa que nenhum dado do cliente é armazenado entre requisições GET. Cada requisição é independente e não depende das anteriores.
  • Dados armazenáveis em cache que simplificam as interações entre cliente e servidor.
  • Ter uma interface consistente entre componentes para que as informações sejam transferidas de maneira  padronizada. Para isso, é necessário que:
    • os recursos solicitados sejam identificáveis e distintos das representações enviadas ao cliente.
    • os recursos e suas representações sejam diferentes, mas a representação contenha as informações necessárias para o cliente manipular o recurso.
    • as mensagens autoexplicativas retornadas para o cliente tenham informações suficientes para detalhar como ele deve processá-las.
    • exista um hipertexto ou hipermídia disponível, de forma que, após acessar um recurso , o cliente possa usar hiperlinks para localizar todas as outras ações disponíveis.
  • Um sistema em camadas que organiza cada tipo de servidor (responsável pela segurança, balanceamento de carga etc.) envolvido na recuperação das informações solicitadas em  hierarquias invisíveis ao cliente .
  • Código sob demanda (opcional): capacidade de enviar código executável do servidor para o cliente quando solicitado, ampliando sua funcionalidade. 

Embora uma API REST precise atender a esses critérios, ela ainda é considerada mais fácil de usar do que protocolos rígidos como o SOAP (Simple Object Access Protocol), que exige mensageria XML, conformidade com transações e segurança integrada, tornando-o mais lento e pesado. 

Por outro lado, o REST é um conjunto de diretrizes que pode ser implementado  conforme necessário, tornando as APIs REST mais rápidas, leves e escaláveis, e, por isso, ideais para Internet das Coisas (IoT) e o desenvolvimento de apps mobile

Leia mais sobre as diferenças entre REST e SOAP

O Red Hat® Integration é uma solução voltada a APIs que integra conectividade de aplicações, transformação de dados, orquestração e composição de serviços, transmissão de mensagens em tempo real, detecção de alteração de dados e gerenciamento de APIs. Tudo isso permite conectar aplicações e dados em uma infraestrutura híbrida. Combinado com uma plataforma nativa em nuvem e uma cadeia de ferramentas, ele oferece suporte ao desenvolvimento de apps modernas. 

O Red Hat 3scale API Management é um componente do Red Hat Integration que permite compartilhar, distribuir, controlar e monetizar suas APIs em uma plataforma de infraestrutura projetada para garantir desempenho, controle, segurança e escalabilidade. Implemente os componentes do 3scale on-premise, na nuvem ou nos dois. 

Mais informações

Hub

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

REST e SOAP: entenda as diferenças

Os padrões REST e SOAP são abordagens distintas para transmissão de dados online e definem como criar APIs para a comunicação de dados entre aplicações web.

GraphQL: a linguagem de consulta para APIs

GraphQL é uma linguagem de consulta para APIs e ambiente de execução que fornece uma descrição completa dos dados da API em uma única chamada.

O que é middleware?

Middleware é um software que fornece recursos às aplicações além do que é oferecido pelo sistema operacional. O middleware conecta aplicações, dados e usuários.

Integração: leitura recomendada