Diferenças entre REST e SOAP

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 2019

10 dicas de teste de API para iniciantes (SOAP e REST)

Source: https://habr.com/ru/post/pt483204/


All Articles