APIs Soap & Rest

Embora o SOAP (Protocolo de Acesso a Objetos Simples) tenha sido a abordagem dominante nas interfaces de serviço da web há muito tempo, o REST (Representational State Transfer) vem ganhando terreno rapidamente.
A InterGATE desenvolveu seu conjunto de APIs “ConectorGATE” usando a arquitetura rest full e como também em todos os nossos projetos OnDemand.
Mas qual a diferença entre estes dois tipos de APIs? E quem sai ganhando quando se compara REST x SOAP?
O que é REST?
Um estilo arquitetônico que define um conjunto de recomendações para o design de aplicações que usam o protocolo HTTP para transmissão de dados.
As diretrizes dessa API permite que os desenvolvedores implementem os detalhes necessários de acordo com suas próprias necessidades. Os serviços da Web criados seguindo o estilo de arquitetura REST são chamados RESTful Webservices.
Uma breve introdução sobre web services
Web services são, por definição, serviços expostos em uma rede que permitem a comunicação entre um ou mais dispositivos eletrônicos, sendo capazes de enviar e processar dados de acordo com sua funcionalidade.
Essa comunicação, por sua vez, segue alguns protocolos, principalmente relacionados ao formato da transmissão de dados, o que permite que, uma vez que um sistema implemente essas regras, qualquer outro sistema que siga o mesmo protocolo seja capaz de se comunicar com ele.
Devido a isso, os web services se tornaram extremamente populares, pois acabaram por permitir a comunicação entre plataformas completamente diferentes (Java, C#, C++, Ruby) sem grandes esforços.
O que é SOAP?
SOAP é um sistema de protocolo de comunicação padrão que permite que processos usando diferentes sistemas operacionais, como Linux e Windows, se comuniquem via HTTP e XML. As APIs baseadas em SOAP foram projetadas para criar, recuperar, atualizar e excluir registros como contas, senhas, leads e objetos personalizados.
As APIs SOAP aproveitam as vantagens de criar protocolos baseados na Web, como HTTP e XML, que já estão operando em todos os sistemas operacionais. É por isso que seus desenvolvedores podem manipular facilmente os serviços da Web e obter respostas sem se importar com o idioma e as plataformas.

REST x SOAP
O REST opera por meio de uma interface consistente para acessar os recursos nomeados. É mais usado quando se publica uma API pública pela Internet.
Já o SOAP, por outro lado, expõe componentes da lógica do aplicativo como serviços, e não como dados. Além disso, opera por meio de diferentes interfaces.
Simplificando, o REST acessa os dados enquanto o SOAP executa operações por meio de um conjunto mais padronizado de mensagens. Ainda assim, na maioria dos casos, tanto REST como o SOAP podem ser usados para obter o mesmo resultado (e ambos são infinitamente escaláveis), com algumas diferenças na forma como são configurados.
Os tópicos abaixo vão ajudar a entender o embate REST x SOAP:
- A API REST não possui um padrão oficial, pois é um estilo de arquitetura. A API SOAP, por outro lado, possui um padrão oficial porque é um protocolo;
- REST usa vários padrões como HTTP, JSON, URL e XML, enquanto SOAP é baseada em HTTP e XML;
- Como REST implementa vários padrões, são necessários menos recursos e largura de banda em comparação com o SOAP que usa XML para a sua criação, resultando em um arquivo de tamanho grande;
- As maneiras pelas quais as duas APIs expõem as lógicas de negócios também são diferentes. REST aproveita a exposição da URL como @path (“/ WeatherService”), enquanto o uso da API SOAP de interfaces de serviços como @WebService;
- REST usa a linguagem de descrição de aplicações da Web e SOAP usa a linguagem de descrição de serviços da Web para descrever as funcionalidades oferecidas pelos serviços da web;
- REST é compatível com JavaScript e também pode ser implementado facilmente. Já SOAP também é conveniente com JavaScript, mas não suporta uma implementação maior.
Benefícios do REST sobre SOAP
Já há alguns anos REST tem sido a escolha mais popular dos desenvolvedores para criar APIs. É possível encontrar muitos exemplos, especialmente porque todos os grandes sites de mídia social fornecem APIs REST para que os desenvolvedores possam integrar perfeitamente suas aplicações à plataforma.
Essas APIs também vêm com documentação detalhada, onde se podem obter todas as informações necessárias para extrair dados da API. Conheça alguns benefícios:
- O REST permite uma variedade maior de formatos de dados, enquanto o SOAP permite apenas XML;
- Juntamente com o JSON (que normalmente funciona melhor com dados e oferece análise mais rápida), o REST é geralmente considerado mais fácil de trabalhar;
- Graças ao JSON, o REST oferece melhor suporte;
- O REST fornece desempenho superior, principalmente por meio do armazenamento em cache de informações que não são alteradas nem dinâmicas;
- É o protocolo usado com mais frequência em grandes serviços como Yahoo, Ebay, Amazon e até Google;
O REST geralmente é mais rápido e usa menos largura de banda. Também é mais fácil integrar-se a sites existentes, sem a necessidade de refatorar a infraestrutura do site. Isso permite que os desenvolvedores trabalhem mais rápido e gastem menos tempo reescrevendo um site do zero. Em vez disso, eles podem simplesmente adicionar novas funcionalidades.

Bônus: entenda a relação entre REST e JSON
A arquitetura permite que os provedores de API entreguem dados em vários formatos, como texto sem formatação, HTML, XML, YAML e JSON, que é um dos recursos mais populares. Graças à crescente popularidade do REST, o formato JSON também ganhou força rapidamente, pois é adequado para uma troca de dados rápida.
JSON significa JavaScript Object Notation e é um formato de troca de dados leve e fácil de analisar. Apesar de seu nome, o JSON é completamente independente da linguagem, portanto pode ser usado com qualquer linguagem de programação, não apenas com JavaScript.
Sua sintaxe é um subconjunto da Standard ECMA-262 3rd Edition. Os arquivos JSON consistem em coleções de pares nome/valor e listas ordenadas de valores que são estruturas de dados universais usadas pela maioria das linguagens de programação. Portanto, o JSON pode ser facilmente integrado a qualquer linguagem.
É um formato mais leve e menos detalhado, além de ser mais fácil de ser lido e escrito. Na maioria dos casos, é ideal para a troca de dados pela Internet.
FONTE: TecnoSpeed Blog