Você não pode comparar REST e SOAP. REST é um estilo de arquitetura, enquanto SOAP é um protocolo.
Infelizmente, o REST tornou-se falado coloquialmente como sinônimo de serviço HTTP RESTful, o que significa uma realização da arquitetura denominada REST com HTTP como protocolo (aplicativo).
O REST é baseado nos seguintes princípios (restrições e elementos) (entre parênteses, a realização no HTTP RESTful) [1] .
- Sem estado (HTTP é um protocolo sem estado)
- Recurso (identificado por URIs)
- Interface Uniforme (Métodos HTTP)
- Representação (MIME-TYPE)
- HATEOS (Hiperlinks)
- Cache (cache HTTP)
Por outro lado, muitas pessoas querem dizer SOAP como um serviço da Web baseado em WSDL e SOAP, que fazem parte da arquitetura de serviços da Web W3C [2] .
- O SOAP é usado como protocolo para troca de informações (basicamente nome do método, parâmetros, valores de retorno, tipos de dados, ...).
- WSDL, uma linguagem de definição de interface para descrever o serviço da web.
Qual é o significado atual do SOAP *?
SOAP é um padrão W3C e é usado como formato de troca de informações nos serviços web W3C. Esses serviços da web foram - especialmente durante o hype das SOAs (arquiteturas orientadas a serviços) por volta de 2008 (+ - 3 anos) - e (infelizmente) ainda são implementados principalmente em aplicativos corporativos.
Isso tem vários motivos. Naquela época, o HTTP RESTful não era bem conhecido e era mal compreendido. Infelizmente, ainda é incompreendido, dê uma olhada nas outras respostas
„[...] REST é muito mais limitado que SOAP [...].“
„O objetivo principal do REST é representar recursos na Internet [...].”
Além disso, o SOAP (e o WSDL) fazem parte da pilha de protocolos de serviço da Web W3C, que fornece ainda mais padrões para a implementação de um serviço da Web.
As pessoas ainda estão desenvolvendo novas APIs baseadas em SOAP ou agora são um legado?
Então, sim, ainda existem e também haverá sistemas futuros por aí que usam SOAP (pelo menos em sistemas corporativos, principalmente atrás das portas). Mas a maioria está tentando fazer algum tipo de "REST" hoje em dia.
Alguém pode me corrigir se estiver errado sobre essa diferença entre SOAP e REST?
Dizer que o REST é uma arquitetura sem estado mais flexível para transferência de dados não é uma boa explicação. O REST de fala simples é um estilo de arquitetura com restrições e elementos específicos. Considerando que o SOAP é um protocolo de troca de informações.
Como eu já escrevi, você não pode compará-los. Mas você pode comparar um serviço da Web HTTP RESTful com um serviço da Web SOAP / WSDL.