SlideShare uma empresa Scribd logo
1 de 12
SOAP x REST
SOAP, O parrudo
REST, O ligeiro
Pedro Henrique Tannús
UNITRI – 2014/01
PSDC
O que é SOAP?
• SOAP: Simple Object Access Protocol, é um protocolo
para troca de informações estruturada em uma
plataforma descentralizada e distribuída usando XML.
• Funciona principalmente com RPC (Remote Procedure
Call) e HTTP (Hyper Text Transfer Protocol)
• Sua hábil implementação HTTP faz com que o SOAP
contorne firewalls e resolva as requisições sem
necessidade de credenciais no domínio do Client.
SOAP, estrutura
Como funciona?
• De acordo com o W3Schools, a estrutura da mensagem SOAP é
definida em um documento XML que contém os seguintes
elementos:
– Envelope (obrigatório): é responsável por definir o
conteúdo da mensagem.
– Header (opcional): contém os dados do cabeçalho.
– Body (obrigatório): contém a codificação atual de
uma chamada a um método e todos os argumentos
de entrada ou uma resposta codificada que contém o
resultado de uma chamada de um método.
Prós
• É um padrão que combinado a as especificações WS-* podem
garantir questões de QoS(Quality of Service), Segurança, transação
e outras questões presentes em integrações mais complexas.
• Uma mensagem SOAP pode ser propagada por diferentes
protocolos, o que flexibiliza bastante várias integrações.
• É um padrão que está muito maduro no mercado, qualquer
ferramenta de integração e Framework tem várias funcionalidades
para manipular as mensagens que seguem este padrão.
Contras
• Falta de interoperabilidade entre ferramentas de desenvolvimento do SOAP.
– Embora o SOAP tenha amplo suporte, ainda existem problemas de incompatibilidades entre diferentes
implementações do SOAP.
• Mecanismos de Segurança Imaturos.
– O SOAP não define mecanismo para criptografia do conteúdo de uma mensagem SOAP, o que evitaria
que outros tivessem acesso ao conteúdo da mensagem.
• Não existe garantia quanto à entrega da mensagem.
– Quando uma mensagem estiver sendo transferida, se o sistema falhar, ele não saberá como reenviar a
mensagem.
• Um cliente SOAP não pode enviar uma solicitação a vários servidores, sem enviar a
solicitação a todos os servidores.
• Incapacidade de transportar conteudo complexo como arquivos de imagens ou sons
O que é REST?
• REST: Representational State Transfer, tem seu foco no
acesso de “Recursos” através de uma interface bastante
consistente.
• Cada Recurso tem seu nome e ID e o estado do
Recurso pode mudar quando algum método for aplicado
por alguma requisição usando qualquer vocabulário.
REST, estrutura
Princípios
• REST afirma que a web já desfrutou de escalabilidade como resultado de uma série de
desenhos fundamentais:
• Um protocolo cliente/servidor sem estado: cada mensagem HTTP contém toda a informação
necessária para compreender o pedido. Como resultado, nem o cliente e nem o servidor
necessitam gravar nenhum estado das comunicações entre mensagens. Na prática, muitas
aplicações baseadas em HTTP utilizam cookies e outros mecanismos para manter o estado da
sessão (algumas destas práticas, como a reescrita de URLs, não são permitidas pela regra do
REST).
• Um conjunto de operações bem definidas que se aplicam a todos os recursos de informação:
HTTP em si define um pequeno conjunto de operações, as mais importantes
são POST, GET, PUT e DELETE. Com frequência estas operações são combinadas com
operações CRUD para a persistência de dados, onde POST não se encaixa exatamente neste
esquema.
• Uma sintaxe universal para identificar os recursos. No sistema REST, cada recurso é
unicamente direcionado através da sua URI.
• O uso de hipermídia, tanto para a informação da aplicação como para as transições de estado
da aplicação: a representação deste estado em um sistema REST são tipicamente HTML ou
XML. Como resultado disto, é possível navegar com um recurso REST a muitos outros,
simplesmente seguindo ligações sem requerer o uso de registros ou outra infraestrutura
adicional.
Prós
• É mais elegante, pois utiliza ao máximo o protocolo HTTP, evitando a
construção de protocolos adicionais
• Tem o potencial de ser bem mais simples que uma implementação com
WSDL/SOAP
• Tende a ser mais performático
• ~ 80% das integrações utilizam o protocolo HTTP.
• A possibilidade de ter difersças representações de um mesmo recurso, por
exemplo, uma dada entidade pode ser representada em diferentes formatos
como Json, xml, html e text/plain, dependendo da requisição feita pelo
cliente(Content-Negotiation)
• Possibilidade de navegar entre relacionamentos (Links web) de vários
recursos de forma dinamica. seguindo a usabilidade de qualquer sistema
web. HATEOAS (Hypermedia as the Engine of Application State).
Contras
• A arquitetura dos Recursos tem que ser bastante fundamentada
antes da implementação. Demonstra uma certa complexibilidade.
• Não permite implementação do vocabulário ficando restrito somente
aos verbos HTTP.
• Suporta somente HTTP/HTTPS
– HTTP é sincrônico. Esta limitação pode levar à certas decisões irreversíveis no
contexto geral do projeto.
Conclusão
• REST, é bom para:
– Situações em que há limitação de recursos e de
largura de banda: A estrutura de retorno é em
qualquer formato definido pelo desenvolvedor e
qualquer navegador pode ser usado. Isso porque a
abordagem REST usa o padrão de chamadas GET,
PUT, POST e DELETE. O REST também pode
usar objetos XMLHttpRequest (a base do velho
AJAX) que a maioria dos navegadores modernos
suporta.
– Operações totalmente sem-estado: se uma
operação precisa ser continuada, o REST não será
a melhor opção. No entanto, se forem necessárias
operações de CRUD stateless (Criar, Ler, Atualizar
e Excluir), o REST seria a melhor alternativa.
– Situações que exigem cache: se a informação pode
ser armazenada em cache, devido à natureza da
operação stateless do REST, esse seria um cenário
adequado para a tecnologia.
• REST, é bom para:
– Processamento e chamada assíncronos: se o
aplicativo precisa de um nível garantido de
confiabilidade e segurança para a troca de
mensagens, então o SOAP 1.2 oferece padrões
adicionais para esse tipo de operação como por
exemplo o WSRM (WS-Reliable Messaging).
– Contratos formais: se ambos os lados
(fornecedor e consumidor) têm que concordar
com o formato de intercâmbio de dados, então
o SOAP fornece especificações rígidas para
esse tipo de interação.
– Operações stateful: para o caso de o aplicativo
precisar de informação contextual e
gerenciamento de estado com coordenação e
segurança, o SOAP possui uma especificação
adicional em sua estrutura que apoia essa
necessidade (segurança, transações,
coordenação etc.). Comparativamente, usar o
REST exigiria que os desenvolvedores
construíssem uma solução personalizada.

Mais conteúdo relacionado

Mais procurados

Boas práticas com Web Services
Boas práticas com Web ServicesBoas práticas com Web Services
Boas práticas com Web ServicesEvaldo Junior
 
Sistemas Distribuídos - Big Web Services
Sistemas Distribuídos - Big Web ServicesSistemas Distribuídos - Big Web Services
Sistemas Distribuídos - Big Web ServicesKeyo Galvao
 
Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBelliando dias
 
Integração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS AssíncronoIntegração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS AssíncronoÁtilla Silva Barros
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo Fmdmansur
 
GlossáRio De Internet
GlossáRio De InternetGlossáRio De Internet
GlossáRio De InternetFredericoSilva
 
Redes Avançadas - 6.QoS
Redes Avançadas - 6.QoSRedes Avançadas - 6.QoS
Redes Avançadas - 6.QoSMauro Tapajós
 
Modelo ozil camada de transporte
Modelo ozil camada de transporteModelo ozil camada de transporte
Modelo ozil camada de transporte2lindos
 
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosFISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosMauro Tapajós
 
Camada De Aplicação
Camada De AplicaçãoCamada De Aplicação
Camada De AplicaçãoLyous
 
Redes servidor web
Redes servidor webRedes servidor web
Redes servidor webMauro Duarte
 
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Renato Groff
 

Mais procurados (20)

Redes De Computador Alberane Proxy Windows
Redes De Computador   Alberane   Proxy   WindowsRedes De Computador   Alberane   Proxy   Windows
Redes De Computador Alberane Proxy Windows
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Trabalho Final PSDC - Simião
Trabalho Final PSDC - SimiãoTrabalho Final PSDC - Simião
Trabalho Final PSDC - Simião
 
Boas práticas com Web Services
Boas práticas com Web ServicesBoas práticas com Web Services
Boas práticas com Web Services
 
Sistemas Distribuídos - Big Web Services
Sistemas Distribuídos - Big Web ServicesSistemas Distribuídos - Big Web Services
Sistemas Distribuídos - Big Web Services
 
Trabalho Proxy
Trabalho ProxyTrabalho Proxy
Trabalho Proxy
 
Servidor proxy
Servidor proxy Servidor proxy
Servidor proxy
 
Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEB
 
Android + web service
Android + web serviceAndroid + web service
Android + web service
 
Trabalho sobre Proxy
Trabalho sobre ProxyTrabalho sobre Proxy
Trabalho sobre Proxy
 
Integração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS AssíncronoIntegração de Sistemas e JMS Assíncrono
Integração de Sistemas e JMS Assíncrono
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo F
 
GlossáRio De Internet
GlossáRio De InternetGlossáRio De Internet
GlossáRio De Internet
 
Redes Avançadas - 6.QoS
Redes Avançadas - 6.QoSRedes Avançadas - 6.QoS
Redes Avançadas - 6.QoS
 
Nfc e no mobile
Nfc e no mobileNfc e no mobile
Nfc e no mobile
 
Modelo ozil camada de transporte
Modelo ozil camada de transporteModelo ozil camada de transporte
Modelo ozil camada de transporte
 
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosFISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
 
Camada De Aplicação
Camada De AplicaçãoCamada De Aplicação
Camada De Aplicação
 
Redes servidor web
Redes servidor webRedes servidor web
Redes servidor web
 
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
 

Destaque

Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5Loiane Groner
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Introducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaIntroducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaLoiane Groner
 

Destaque (7)

Introdução à Webservices
Introdução à WebservicesIntrodução à Webservices
Introdução à Webservices
 
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
 
Pensando Rápido e Devagar
Pensando Rápido e DevagarPensando Rápido e Devagar
Pensando Rápido e Devagar
 
Introducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaIntroducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na pratica
 

Semelhante a SOAP vs REST - Comparação dos protocolos

Webservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebWebservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebAlexandre Andrade
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APINuno Pereira
 
Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebRafael Chagas
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)DNAD
 
Soa – Woa Rest Arquiteturas
Soa – Woa   Rest ArquiteturasSoa – Woa   Rest Arquiteturas
Soa – Woa Rest Arquiteturasrafaslide
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no androidAlexandre Antunes
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e restassufmg
 

Semelhante a SOAP vs REST - Comparação dos protocolos (20)

Soap x rest
Soap x restSoap x rest
Soap x rest
 
Web service
Web serviceWeb service
Web service
 
Rest e soap
Rest e soapRest e soap
Rest e soap
 
Web Services
Web ServicesWeb Services
Web Services
 
Rest
RestRest
Rest
 
Trabalho final psdc
Trabalho final psdcTrabalho final psdc
Trabalho final psdc
 
Webservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da WebWebservices em PHP e a liberdade da Web
Webservices em PHP e a liberdade da Web
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, API
 
Aula 1
Aula 1Aula 1
Aula 1
 
Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na Web
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
Soa – Woa Rest Arquiteturas
Soa – Woa   Rest ArquiteturasSoa – Woa   Rest Arquiteturas
Soa – Woa Rest Arquiteturas
 
SOAP e REST
SOAP e RESTSOAP e REST
SOAP e REST
 
Dawi o protocolo-http
Dawi o protocolo-httpDawi o protocolo-http
Dawi o protocolo-http
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest
 

SOAP vs REST - Comparação dos protocolos

  • 1. SOAP x REST SOAP, O parrudo REST, O ligeiro Pedro Henrique Tannús UNITRI – 2014/01 PSDC
  • 2. O que é SOAP? • SOAP: Simple Object Access Protocol, é um protocolo para troca de informações estruturada em uma plataforma descentralizada e distribuída usando XML. • Funciona principalmente com RPC (Remote Procedure Call) e HTTP (Hyper Text Transfer Protocol) • Sua hábil implementação HTTP faz com que o SOAP contorne firewalls e resolva as requisições sem necessidade de credenciais no domínio do Client.
  • 4. Como funciona? • De acordo com o W3Schools, a estrutura da mensagem SOAP é definida em um documento XML que contém os seguintes elementos: – Envelope (obrigatório): é responsável por definir o conteúdo da mensagem. – Header (opcional): contém os dados do cabeçalho. – Body (obrigatório): contém a codificação atual de uma chamada a um método e todos os argumentos de entrada ou uma resposta codificada que contém o resultado de uma chamada de um método.
  • 5. Prós • É um padrão que combinado a as especificações WS-* podem garantir questões de QoS(Quality of Service), Segurança, transação e outras questões presentes em integrações mais complexas. • Uma mensagem SOAP pode ser propagada por diferentes protocolos, o que flexibiliza bastante várias integrações. • É um padrão que está muito maduro no mercado, qualquer ferramenta de integração e Framework tem várias funcionalidades para manipular as mensagens que seguem este padrão.
  • 6. Contras • Falta de interoperabilidade entre ferramentas de desenvolvimento do SOAP. – Embora o SOAP tenha amplo suporte, ainda existem problemas de incompatibilidades entre diferentes implementações do SOAP. • Mecanismos de Segurança Imaturos. – O SOAP não define mecanismo para criptografia do conteúdo de uma mensagem SOAP, o que evitaria que outros tivessem acesso ao conteúdo da mensagem. • Não existe garantia quanto à entrega da mensagem. – Quando uma mensagem estiver sendo transferida, se o sistema falhar, ele não saberá como reenviar a mensagem. • Um cliente SOAP não pode enviar uma solicitação a vários servidores, sem enviar a solicitação a todos os servidores. • Incapacidade de transportar conteudo complexo como arquivos de imagens ou sons
  • 7. O que é REST? • REST: Representational State Transfer, tem seu foco no acesso de “Recursos” através de uma interface bastante consistente. • Cada Recurso tem seu nome e ID e o estado do Recurso pode mudar quando algum método for aplicado por alguma requisição usando qualquer vocabulário.
  • 9. Princípios • REST afirma que a web já desfrutou de escalabilidade como resultado de uma série de desenhos fundamentais: • Um protocolo cliente/servidor sem estado: cada mensagem HTTP contém toda a informação necessária para compreender o pedido. Como resultado, nem o cliente e nem o servidor necessitam gravar nenhum estado das comunicações entre mensagens. Na prática, muitas aplicações baseadas em HTTP utilizam cookies e outros mecanismos para manter o estado da sessão (algumas destas práticas, como a reescrita de URLs, não são permitidas pela regra do REST). • Um conjunto de operações bem definidas que se aplicam a todos os recursos de informação: HTTP em si define um pequeno conjunto de operações, as mais importantes são POST, GET, PUT e DELETE. Com frequência estas operações são combinadas com operações CRUD para a persistência de dados, onde POST não se encaixa exatamente neste esquema. • Uma sintaxe universal para identificar os recursos. No sistema REST, cada recurso é unicamente direcionado através da sua URI. • O uso de hipermídia, tanto para a informação da aplicação como para as transições de estado da aplicação: a representação deste estado em um sistema REST são tipicamente HTML ou XML. Como resultado disto, é possível navegar com um recurso REST a muitos outros, simplesmente seguindo ligações sem requerer o uso de registros ou outra infraestrutura adicional.
  • 10. Prós • É mais elegante, pois utiliza ao máximo o protocolo HTTP, evitando a construção de protocolos adicionais • Tem o potencial de ser bem mais simples que uma implementação com WSDL/SOAP • Tende a ser mais performático • ~ 80% das integrações utilizam o protocolo HTTP. • A possibilidade de ter difersças representações de um mesmo recurso, por exemplo, uma dada entidade pode ser representada em diferentes formatos como Json, xml, html e text/plain, dependendo da requisição feita pelo cliente(Content-Negotiation) • Possibilidade de navegar entre relacionamentos (Links web) de vários recursos de forma dinamica. seguindo a usabilidade de qualquer sistema web. HATEOAS (Hypermedia as the Engine of Application State).
  • 11. Contras • A arquitetura dos Recursos tem que ser bastante fundamentada antes da implementação. Demonstra uma certa complexibilidade. • Não permite implementação do vocabulário ficando restrito somente aos verbos HTTP. • Suporta somente HTTP/HTTPS – HTTP é sincrônico. Esta limitação pode levar à certas decisões irreversíveis no contexto geral do projeto.
  • 12. Conclusão • REST, é bom para: – Situações em que há limitação de recursos e de largura de banda: A estrutura de retorno é em qualquer formato definido pelo desenvolvedor e qualquer navegador pode ser usado. Isso porque a abordagem REST usa o padrão de chamadas GET, PUT, POST e DELETE. O REST também pode usar objetos XMLHttpRequest (a base do velho AJAX) que a maioria dos navegadores modernos suporta. – Operações totalmente sem-estado: se uma operação precisa ser continuada, o REST não será a melhor opção. No entanto, se forem necessárias operações de CRUD stateless (Criar, Ler, Atualizar e Excluir), o REST seria a melhor alternativa. – Situações que exigem cache: se a informação pode ser armazenada em cache, devido à natureza da operação stateless do REST, esse seria um cenário adequado para a tecnologia. • REST, é bom para: – Processamento e chamada assíncronos: se o aplicativo precisa de um nível garantido de confiabilidade e segurança para a troca de mensagens, então o SOAP 1.2 oferece padrões adicionais para esse tipo de operação como por exemplo o WSRM (WS-Reliable Messaging). – Contratos formais: se ambos os lados (fornecedor e consumidor) têm que concordar com o formato de intercâmbio de dados, então o SOAP fornece especificações rígidas para esse tipo de interação. – Operações stateful: para o caso de o aplicativo precisar de informação contextual e gerenciamento de estado com coordenação e segurança, o SOAP possui uma especificação adicional em sua estrutura que apoia essa necessidade (segurança, transações, coordenação etc.). Comparativamente, usar o REST exigiria que os desenvolvedores construíssem uma solução personalizada.