Serviços REST: O que são?
Iniciamos aqui uma série de 3 artigos sobre os Serviços REST ((Representational State Transfer)
Iniciamos aqui uma série de 3 artigos sobre os Serviços REST (Representational State Transfer)
Atualmente, existe uma grande quantidade de informação na Internet que aumenta diariamente. A informação cresce mais depressa do que pode ser visualizada. A Internet já não contém apenas informação para os humanos consultarem, mas também para que sistemas automáticos possam trocar dados entre eles. Portanto, existe a necessidade de organizar a informação na nuvem de forma a que os programas possam carregar, partilhar, procurar, encontrar e monitorizar a informação de origens diversas, como dados de vendas, informação financeira, campanhas de marketing, etc.
Surge a necessidade de procurar o modo de tornar fáceis as coisas complexas. E essa é a filosofia que está por detrás dos Serviços REST (Representational State Transfer), que não são um padrão, mas sim uma filosofia de organização das arquiteturas de sistemas em rede consistente em clientes e servidores.
No mundo da automatização também existe uma tendência para deixar disponível na nuvem informação do processo, especialmente nos ambientes distribuídos geograficamente. Este pode ser o caso das SmartCities, que devem recolher medidas diversas mediante sensores distribuídos por toda uma cidade. Os sensores costumam ter um concentrador com capacidade para partilhar a informação via Wifi ou GPRS, mas também estão a surgir sensores inteligentes com a capacidade de comunicação direta por Internet, para partilhar as suas medidas ou para serem configurados remotamente. Embora estes sensores possam comunicar com protocolos simples como HTTP, não são capazes de executar código personalizado, pelo que o modo de partilhar a informação deve estar definido de maneira muito simples e através de protocolos padrão.
Os Serviços REST definem uns princípios de arquitetura mediante os quais se podem definir uns serviços Web focalizados nos recursos de um sistema, incluindo como aceder aos estados dos recursos.

Representational State Transfer (REST) está a ganhar um espaço muito importante na Web como uma alternativa simples aos Serviços Web baseados em SOAP (Simple Object Access Protocol) e WSDL (Web Services Description Language), já que são mais fáceis de utilizar por ser um modelo que expõe os serviços como recursos.
REST foi descrito pela primeira vez no ano 2000 por Roy Fielding na sua dissertação sobre princípios de arquitetura de sistemas em rede. Segundo a definição de Fielding:
“Representational State Transfer is intended to evoke an image of how a well-designed Web application behaves: a network of web pages (a virtual state-machine), where the user progresses through an application by selecting links (state transitions), resulting in the next page (representing the next state of the application) being transferred to the user and rendered for their use.”
Ou seja, REST permite o acesso a conteúdo na Web representado como o estado de um recurso, a partir do qual se pode evoluir ou transferir para outro recurso ou para outro estado do recurso.
Um recurso pode representar qualquer coisa que possa ser descrita pelo seu estado ou conteúdo, desde uma lista de material de uma empresa até ao detalhe de cada um dos materiais de dita lista. Um recurso é uma entidade conceptual. A sua representação é a manifestação concreta do recurso. Por exemplo, a Amazon ou o eBay têm todos os elementos à venda como recursos dentro das suas páginas, ou seja, cada objeto à venda pode ser acedido individualmente a partir de um cliente mediante serviços REST.





