Você não pode comparar REST e SOAP. REST é um estilo arquitetônico, enquanto SOAP é um protocolo.
Infelizmente, o REST tornou-se um sinônimo coloquial para o serviço HTTP RESTful, o que significa uma realização da arquitetura com estilo REST com o protocolo HTTP (aplicativo).
O REST é baseado nos seguintes princípios (restrições e elementos) (entre parênteses a realização em 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, dizendo SOAP, um serviço da Web baseado em WSDL e SOAP, que fazem parte da arquitetura de serviços da Web do W3C [2] .
- O SOAP é usado como protocolo para trocar 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.
What is the present-day significance of SOAP*?
SOAP é um padrão W3C e é usado como formato de troca de informações em serviços da Web do W3C. Esses serviços da Web foram - especialmente durante o hype dos SOAs (arquiteturas voltadas para serviços) por volta de 2008 (+ - 3 anos) - e (infelizmente) ainda são implementados principalmente em aplicativos corporativos.
Isso tem várias razões. Naquela época, o HTTP RESTful não era bem conhecido e era mal entendido. Infelizmente, ainda é mal entendido, dê uma olhada nas outras respostas
„[...]REST is much more limited than SOAP[...].“
„The primary purpose of REST is to represent resources on the Internet[...].“
Além disso, o SOAP (e o WSDL) fazem parte da pilha de protocolos de serviços da Web do W3C, que fornece ainda mais padrões para a implementação de um serviço da Web.
Are people still developing new SOAP-based APIs, or it's mostly a
legacy now?
Então, sim, ainda existem e haverá também em futuros sistemas que estão usando o SOAP (pelo menos nos sistemas corporativos, principalmente atrás das portas). Mas a maioria está tentando fazer algum tipo de "REST" hoje em dia.
Can someone please correct me if I am wrong about this difference
between SOAP and REST?
Dizer que REST é uma arquitetura sem estado mais flexível para transferência de dados não é uma boa explicação. Simplesmente falado REST é um estilo de arquitetura com restrições e elementos específicos. Considerando 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.