O que é uma API REST?
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.
O que é uma API?
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.
REST
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.
Introdução ao Red Hat OpenShift API Management
Por que escolher a Red Hat?
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.