Jump to section

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.

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.

Leitura recomendada

Artigo

O que é integração?

Quer saber o que é integração? Descubra o que é, como incorporá-la e por que ela é muito melhor com tecnologias open source.

Artigo

O que é Apache Kafka?

O Apache Kafka é uma plataforma distribuída de transmissão de dados que é capaz de publicar, subscrever, armazenar e processar fluxos de registro em tempo real.

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.

Leia mais sobre integração

Soluções Red Hat

Conjunto abrangente de tecnologias para integração e mensageria. Inclui Red Hat 3scale API Management, Red Hat AMQ, Red Hat Runtimes, captura de dados de alterações e um registro de serviço.

Plataforma gerenciada e hospedada, aplicações e data services que otimizam a experiência da nuvem híbrida, reduzindo os custos e a complexidade operacionais de aplicações nativas em nuvem.

Um conjunto de soluções, ferramentas e componentes para desenvolver e manter aplicações nativas em nuvem. Inclui Red Hat AMQ, Red Hat Data Grid, Red Hat JBoss® Enterprise Application Platform, Red Hat JBoss Web Server, uma versão Red Hat do OpenJDK, uma versão Red Hat do Quarkus, um conjunto de runtimes nativos em nuvem, kit de ferramentas de migração para aplicações, login único (SSO) e serviço de inicialização.

Um conjunto abrangente de tecnologias de integração e runtimes para criar, implantar e operar aplicações com segurança e em escala na nuvem híbrida.

Conteúdo adicional

Ebook

Integração ágil

Crie uma infraestrutura ágil para viabilizar uma organização adaptável.

Visão geral

Red Hat Cloud Services

Serviços gerenciados para desenvolvimento nativo em nuvem.

Treinamento

Treinamento gratuito

Red Hat Agile Integration Technical Overview