Select Page

Serviços REST versus Web Services

Último artigo dedicado aos serviços REST, no qual contrapomos as suas prestações ao serviço web

Terceiro e último artigo dedicado aos serviços REST:

Tanto os Serviços Web baseados em REST (RESTful Web Services) como os Web Services baseados em SOAP têm uma arquitetura Cliente-Servidor para que os clientes possam obter informações do servidor via Web. No entanto, ambos os serviços têm uma maneira diferente de aceder à informação.

A primeira diferença é o modo de estruturar a informação. Os Web Services permitem o acesso à informação do servidor através de verbos ou funções. Um cliente de Web Services deve chamar uma função que o servidor executará e devolverá o resultado. Por exemplo, poderia ter esta forma:

http://www.MiEmpresa.com/Sensores/RecogeDatosSensor(Sensor001)

No entanto, os serviços Rest estão orientados para os recursos ou objetos.

http://www.MiEmpresa.com/Sensores/Sensor001

Ao não existirem verbos nos serviços REST, não existem funções para recolher o catálogo completo de recursos. A solução é criar um recurso novo que represente o catálogo completo de recursos:

http://www.MiEmpresa.com/Sensores

A resposta a esta solicitação poderá ser uma listagem de recursos a partir da qual compor os URL de cada recurso. Inclusive, poderá existir um link em cada um dos identificadores devolvidos para que não seja necessário compor o novo URL, mas que seja suficiente copiá-lo.

Outra diferença importante entre Serviços Web tipo REST e Serviços Web baseados em SOAP é que, neste último, é necessário utilizar ferramentas de desenvolvimento para gerar os clientes a partir do WSDL. Isto implica que o resultado deve ser compilado em alguma linguagem e posto em funcionamento em algum dispositivo capaz de interpretar o código compilado. Pelo contrário, os Serviços Web tipo REST não precisam de compilar nenhuma função do servidor e utilizam os métodos padrão do protocolo HTTP, muito fáceis de implementar em dispositivos clientes. Desta forma, qualquer sensor capaz de se conectar a uma rede com um endereço IP, que, portanto, implementa HTTP, será capaz de consumir serviços REST. Ganha-se, portanto, em universalidade.

No entanto, esta facilidade de implementação tem as suas limitações. Por exemplo, WSDL define os tipos de variáveis trocadas entre servidor e clientes, inclusive podem ser estruturas complexas.

HTTP

Conclusões

Com o atual volume de informação na Web, torna-se necessário procurar um modo simples de trocar informação entre dispositivos, ou dos dispositivos para sistemas na nuvem. Existem diferentes modos de trocar informação entre máquinas, mas um modo realmente simples de implementar é o baseado nos serviços REST.

Os serviços REST não são um conceito novo, mas simplesmente definem alguns princípios de arquitetura para o acesso de informação na Web. Definem-se alguns recursos num ou vários servidores que são acessíveis através de métodos padrão de HTTP como GET, PUT, POST ou DELETE. É como se estivessem a ser geradas páginas Web acessíveis a partir do protocolo padrão HTTP, ou seja, acessíveis a partir de qualquer cliente Web.

Os serviços REST nem sempre são a melhor opção para a troca de informação entre servidor e clientes, mas é tão simples de utilizar e implementar que está a ganhar cada vez mais presença na Internet. Um simples sensor conectado à Internet e que seja capaz de implementar o protocolo HTTP pode fazer parte de uma arquitetura REST.