Este artigo discute alguns aspectos das diferenças básicas entre REST e SOAP.
Opa ... na verdade, compará-las é como comparar maçãs com laranjas, já que o SOAP é um formato de protocolo baseado em XML, enquanto o REST é uma abordagem arquitetural.

Você vai aprender
- O que é REST?
- O que é SOAP?
- Qual é a diferença entre REST e SOAP?
API REST
Este é o segundo artigo de uma série de artigos sobre a API REST:
- Introdução à API REST - Serviços da Web RESTful
- Diferenças entre REST e SOAP
- Desenvolvimento da API REST - o que é primeiro contrato (primeiro contrato)?
- Desenvolvimento da API REST - o que é o Code First (code first)?
- API REST - O que é o HATEOAS?
- Recomendações da API REST - Exemplos de design de serviços da Web em Java e Spring
REST e SOAP
REST e SOAP não são realmente comparáveis. REST é um estilo arquitetônico. SOAP é um formato de mensagens. Vamos comparar as implementações populares dos estilos REST e SOAP.
- Exemplo de implementação RESTful : JSON sobre HTTP
- Exemplo de implementação de SOAP : XML em cima de SOAP sobre HTTP
No nível superior, o SOAP restringe a estrutura de suas mensagens, enquanto o REST é uma abordagem arquitetural que se concentra no uso do HTTP como um protocolo de transporte.
- A especificidade do SOAP é um formato de troca de dados. Com o SOAP, é sempre SOAP-XML, que é o XML que inclui:
- Envelope (envelope) - o elemento raiz que define a mensagem e o espaço para nome usados no documento,
- Cabeçalho (cabeçalho) - contém atributos de mensagem, por exemplo: informações de segurança ou informações de roteamento de rede,
- Corpo (corpo) - contém uma mensagem trocada entre aplicativos,
- Falha - um elemento opcional que fornece informações sobre erros que ocorreram durante o processamento da mensagem. A solicitação e a resposta devem estar em conformidade com a estrutura SOAP. - A especificidade do REST é o uso do HTTP como um protocolo de transporte. Implica o melhor uso dos recursos fornecidos pelos HTTP - métodos de solicitação, cabeçalhos de solicitação, respostas, cabeçalhos de resposta, etc.
Formato de mensagens
- No SOAP, você usa o formato XML SOAP para solicitações e respostas.
- Não existe esse formato fixo no REST. Você pode trocar mensagens com base em XML, JSON ou qualquer outro formato conveniente. JSON é o mais popular entre os formatos utilizados.
Definições de serviço
- O SOAP usa o WSDL (Web Services Description Language), uma linguagem baseada em XML para descrever e acessar serviços da Web.
- O REST não possui um idioma de definição de serviço padrão. Apesar de a WADL ter sido um dos primeiros padrões propostos, ela não é muito popular. Mais popular é o uso do Swagger ou da API aberta.
Transporte
O SOAP não impõe nenhuma restrição ao tipo de protocolo de transporte. Você pode usar o protocolo HTTP da Web ou o MQ.
REST implica o melhor uso do protocolo de transporte HTTP
Facilidade de implementação
Os serviços web RESTFful geralmente são muito mais fáceis de implementar do que os serviços web baseados em SOAP.
- O REST geralmente usa JSON, que é mais fácil de analisar e processar. Além disso, o REST não requer uma definição de serviço para fornecer um serviço da web.
- No entanto, no caso do SOAP, você precisa definir seu serviço usando o WSDL, e há muita sobrecarga ao processar e analisar as mensagens SOAP-XML.
Também há um
vídeo do autor sobre esse assunto.
Sumário
Neste artigo, examinamos em detalhes as diferenças entre REST e SOAP.
Leitura adicional
5 cursos para aprender serviços Web RESTful com Java e Spring em 201910 dicas de teste de API para iniciantes (SOAP e REST)