RESTFul Web Services e XML Web Services

Avatar


31 de Dezembro de 2022

Teoria

Há dois tipos principais de web services:

  • RESTful Web Services:
    • Baseados na Arquitetura REST;
  • XML Web Services;
    • Baseados em XML e HTTP.

Os XML Web Services (ou SOAP Web Services) são web services com base em XML e HTTP. Esses web services são uma expressão utilizada para classificar aplicações que são expostas em uma rede via o uso de padrões XML e protocolos de Internet, de tal modo que eles sejam bastante interoperáveis com outros aplicativos distribuídos distintos, e comunicam-se usando protocolos abertos.

A base dos XML Web Services é formada por XML e HTTP:

  • XML:
    • Fornece uma linguagem que pode ser usada entre diferentes plataformas e linguagens de programação; e
    • Expressa mensagens e funções complexas.
  • HTTP:
    • É o protocolo mais usado da Internet;
    • Mas pode-se utilizar outros protocolos como FTP e SMTP.

Em XML Web Services, temos as seguintes tecnologias:

  • SOAP (Simple Object Access Protocol);
    • É um protocolo baseado em XML para troca de informação em um ambiente distribuído e descentralizado;
    • Produz um envelope que define um framework para descrever qual é a mensagem e como processá-la, regras de decodificação para mostrar tipos de dados definidos pela aplicação, uma convenção para representar RPC (Remote Procedure Call) e as respostas;
  • WSDL (Web Services Description Language);
    • Permite aos desenvolvedores expor a sintaxe de um web service;
    • Descreve serviços em rede assim como um conjunto de endpoints produzidos em mensagens, contendo documentos ou informação orientada em procedimentos;
  • UDDI (Universal Description Discovery and Integration);
    • É um serviço de diretório onde empresas podem registrar (publicar) web services e buscar (descobrir) por web services.

A tabela 1 traz as principais diferenças entre os RESTFul Web Services e os XML Web Services. Essa tabela é essencial para respondermos várias questões sobre essas diferenças.

Item de comparação

RESTFul Web Services

XML Web Services

Quantidade de dados para configuração

Usam menos

Usam mais

Ao que se limita

Ao uso do protocolo HTTP/HTTPS

Ao uso do XML como troca de informações

Protocolos de comunicação

Apenas o protocolo HTTP/HTTPS

HTTP/HTTPS, FTP ou SMTP

Formatos para troca de informações

Texto puro, XML e JSON (principalmente)

Apenas o XML

Extensibilidade

Menos extensível

Mais extensível por se basear em XML

Tabela 1: RESTFul Web Services e XML Web Services.

Questões de concursos

[FGV 2018 Banestes – Analista em Tecnologia da Informação – Suporte e Infraestrutura – ADAPTADA] Sobre os princípios do padrão REST, analise as afirmativas a seguir. (Marque CERTO ou ERRADO o texto do item)

[II] REST é independente do protocolo de transporte, podendo ser implementado com HTTP, SMTP ou JMS.

Comentários:

REST é limitado ao uso do protocolo HTTP/HTTPS. Já os XML Web Services, não.

Gabarito: ERRADO.

[IADES 2018 APEX Brasil – Analista – Serviços Técnicos em Tecnologia da Informação] A respeito das diferenças entre REST (Representational State Transfer) e SOAP (Simple Object Access Protocol), assinale a alternativa correta.

a) SOAP permite maior variedade de formatos de mensagens (XML, JSON etc.).
b) REST é mais extensível.
c) REST, em geral, usa menor quantidade de dados.
d) REST tem mecanismos de recuperação de falha embutidos para falhas de comunicação.
e) REST suporta mecanismos adicionais para garantir privacidade de dados e integridade.

Comentários:

Vamos analisar as letras:

  • Letra a está ERRADA: REST permite maior variedade de formatos de mensagens (XML, JSON etc.);
  • Letra b está ERRADA: SOAP é mais extensível;
  • Letra c está CERTA: REST, em geral, usa menor quantidade de dados;
  • Letra d está ERRADA: SOAP tem mecanismos de recuperação de falha embutidos para falhas de comunicação; e
  • Letra e está ERRADA: SOAP suporta mecanismos adicionais para garantir privacidade de dados e integridade.

As letras d e e trazem informações mais específicas que exigem o estudo de SOAP, dentro do assunto de XML Web Services, o que foge do escopo da aula. Porém, a questão é boa para testarmos o conhecimento sobre a diferença entre REST e SOAP.

Gabarito: letra c.

[Gestão Concurso 2018 EMATER/MG – Analista de Sistemas I] Preencha corretamente as lacunas do texto abaixo.

Uma definição para web service é uma representação padrão para alguma informação ou recurso que pode ser usado por outros programas. ____ é um padrão de intercâmbio de mensagens que suporta a comunicação entre serviços e define os componentes essenciais e opcionais das mensagens passadas entre os serviços. ____ é um estilo de arquitetura baseado na transferência de representações de recursos de um servidor para um cliente e é o estilo que sustenta a web como um todo. ____ é um padrão para definição de interface de serviço, determinando como as operações de serviço e ligações de serviço devem ser definidas.

A sequência que preenche corretamente as lacunas do texto é

a) REST / XML / SOAP
b) WSDL / SOAP / REST
c) SOAP / REST / WSDL
d) XML / WSDL / REST

Comentários:

Completando as lacunas do texto da questão, temos:

Uma definição para web service é uma representação padrão para alguma informação ou recurso que pode ser usado por outros programas. SOAP é um padrão de intercâmbio de mensagens que suporta a comunicação entre serviços e define os componentes essenciais e opcionais das mensagens passadas entre os serviços. REST é um estilo de arquitetura baseado na transferência de representações de recursos de um servidor para um cliente e é o estilo que sustenta a web como um todo. WSDL é um padrão para definição de interface de serviço, determinando como as operações de serviço e ligações de serviço devem ser definidas.

Resumindo:

  • Item I: SOAP:
    • É um padrão de intercâmbio de mensagens que suporta a comunicação entre serviços e define os componentes essenciais e opcionais das mensagens passadas entre os serviços;
  • Item II: URI’s:
    • Mapeiam os diversos recursos disponibilizados; e
  • Item III: PUT, GET, POST e DELETE:
    • São métodos padrão do protocolo HTTP que são usados para manipulação de recursos.

Gabarito: letra c.

Então é isso!
[]s e até a próxima!
_________________________
Professor Rogerão Araújo

Avatar


31 de Dezembro de 2022