REST e SOAP: entenda as diferenças

Copiar URL

REST e SOAP são duas abordagens diferentes para a transmissão de dados online. Em específico, eles definem como as interfaces de programação de aplicações (APIs) são criadas, possibilitando a comunicação dos dados entre aplicações web. REST (Representational State Transfer) ou “transferência de estado representacional” é um conjunto de princípios de arquitetura. 

Já SOAP (Simple Object Access Protocol) ou 'protocolo de acesso a objetos simples” é um protocolo oficial mantido pela World Wide Web Consortium (W3C). A principal diferença é que SOAP é um protocolo e REST, não. Normalmente, uma API será baseada em REST ou SOAP, dependendo do caso de uso e das preferências do desenvolvedor.

Ebook: Manual do Proprietário de API

REST é um conjunto de princípios de arquitetura que atende às necessidades de aplicações mobile e serviços web leves. Como se trata de um grupo de diretrizes, são os desenvolvedores que precisam implementar essas recomendações.

Quando uma solicitação de dados é enviada a uma API REST, ela é normalmente feita por meio do protocolo de transferência de hipertexto (hypertext transfer protocol, mais conhecido como HTTP). Após a solicitação ser recebida, as APIs projetadas para REST (chamadas de serviços web ou APIs RESTful) retornam mensagens em diversos formatos: HTML, XML, texto simples e JSON. JSON (notação de objetos JavaScript) é um formato de mensagem mais apropriado porque ele é leve e pode ser lido por qualquer pessoa, máquina e linguagem de programação (apesar do nome). Por isso, as APIs RESTful são mais flexíveis e mais fáceis de configurar.

Para ser RESTful, a aplicação precisa seguir seis diretrizes de arquitetura. É necessário que ela tenha o seguinte:

  1. Uma arquitetura formada por recursos, servidores e clientes.
  2. Comunicação stateless entre servidor e cliente, ou seja, nenhum conteúdo do cliente é armazenado no servidor entre as solicitações. Em vez disso, as informações sobre o estado da sessão são mantidas com o cliente.
  3. Dados que possam ser armazenados em cache para eliminar a necessidade de algumas interações entre o cliente e o servidor.
  4. Uma interface uniforme de componentes para as informações serem transferidas em um formato padronizado, em vez de específico às necessidades de uma aplicação. Roy Fielding, o criador da REST, descreve esse recurso como "a funcionalidade central que diferencia a arquitetura REST dos outros tipos baseados em rede".
  5. Uma limitação de sistema em camadas, onde as interações entre cliente e servidor são mediadas por níveis de hierarquia.
  6. Código sob demanda, o que possibilita que os servidores ampliem as funcionalidades de um cliente ao transferir os códigos executáveis. Como esse processo também pode reduzir a visibilidade, esta é uma diretriz opcional.

Recursos da Red Hat

SOAP é um protocolo padrão projetado originalmente para possibilitar a comunicação entre aplicações desenvolvidas em diferentes linguagens e plataformas. Como se trata de um protocolo, ele impõe regras integradas que aumentam sua complexidade e sobrecarga, desacelerando o tempo de carregamento das páginas. No entanto, esses padrões também proporcionam conformidade integrada, fazendo com que SOAP seja uma opção recomendada para casos empresariais. Isso inclui segurança, atomicidade, consistência, isolamento e durabilidade (ACID), os quais são um conjunto de propriedades para assegurar transações confiáveis de bancos de dados.

As especificações de serviço web comuns incluem:

  • Segurança de serviços web (WS-Security): padroniza como as mensagens são protegidas e transferidas por meio de identificadores exclusivos chamados de tokens.
  • WS-ReliableMessaging: padroniza o processamento de erros entre as mensagens transferidas por uma infraestrutura de TI não confiável.
  • Endereçamento de serviços web (WS-Addressing): empacota informações de roteamento como metadados em cabeçalhos SOAP, em vez de armazená-las em camadas mais a fundo na rede.
  • Linguagem de descrição de serviços web (WSDL): descreve a atividade de um serviço web e onde ele é iniciado e finalizado.

Quando uma solicitação de dados é enviada a uma API SOAP, ela pode ser processada por meio de qualquer protocolo de camada da aplicação: HTTP (em navegadores da web), SMTP (em e-mails), TCP e muito mais. No entanto, depois que a solicitação é recebida, as mensagens SOAP precisam ser retornadas como documentos XML: uma linguagem de marcação que pode ser lida por máquinas e pessoas. Um navegador não pode armazenar em cache uma solicitação concluída a uma API SOAP. Por isso, não é possível acessá-la depois sem fazer o reenvio à API.

Enquanto muitos sistemas legados ainda usam SOAP, REST surgiu depois e costuma ser vista como uma alternativa mais rápida nos casos baseados em web. REST é um conjunto de diretrizes que oferece uma implementação flexível. Já SOAP é um protocolo com requisitos específicos, como a mensageria XML.

As APIs REST são leves e ideais para contextos mais modernos, como a Internet das Coisas (IoT), desenvolvimento de aplicações mobile e serverless. Os serviços web SOAP oferecem segurança integrada e transações em conformidade que atendem a muitas necessidades empresariais, mas que também os deixam mais pesados. Além disso, muitas APIs públicas, como a do Google Maps, seguem as diretrizes REST.

Por que escolher a Red Hat?

A Red Hat fornece soluções de API modulares, leves e abrangentes, desenvolvidas com tecnologia e padrões open source e disponíveis para ambientes on-premise ou na nuvem. Elas desempenham um papel fundamental na otimização da TI, tornando-a mais flexível e capaz de agregar valor rapidamente.

Por que escolher a Red Hat para a integração ágil?

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

O que é a integração de aplicações?

A integração de aplicações conecta diferentes sistemas e apps, permitindo que trabalhem juntos por meio da troca de dados e do uso de serviços.

O que é uma API REST?

Uma API REST (também conhecida como API RESTful) é uma interface de programação de aplicações em conformidade com as restrições da arquitetura REST. REST significa "representational state transfer" ("transferência representacional de estado", em português).

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.

Integração: leitura recomendada