quinta-feira, 26 de setembro de 2013

REST - Fundamentos da Arquitetura RESTful

O termo REST se originou através de um trabalho de Doutorado chamado Architectural Styles and the Design of Network-based Software Architectures, nele o Dr. Roy Thomas Fielding escreve:
"A REST (Representational State Transfer) é pretendida como uma imagem do projeto da aplicação se comportará: uma rede de websites (um estado virtual), onde o usuário progride com uma aplicação selecionando as ligações (transições do estado), tendo como resultado a página seguinte (que representa o estado seguinte da aplicação) que está sendo transferida ao usuário e apresentada para seu uso."
Este trabalho pode ser facilmente encontrado na Web e sua leitura é bastante interessante. As ideias e termos que descrevem sistemas "RESTful" podem ser encontrados em sua essência neste documento, sem os formalismos propostos pelos interesses diversos que tentam deturpar no intuito de tentar vender algo. Seus conceitos são uma excelente demonstração que pode ser utilizado como referência para uma implementação de um sistema Web. Em linhas gerais uma URL (Uniforme Resource Locator) é utilizada para identificar e expor um serviço RESTful. Imaginemos isso um ponto de início a uma publicação de qualquer coisa que contenha um serviço REST. E possua como retorno algo como XML, JSON ou qualquer formato hipermídia.

Então podemos pensar em REST em um conjunto de princípios que definem como os padrões Web, HTTP e URIs devem ser usados. A promessa é que ao aderir aos princípios REST e projetar uma aplicação, obteremos um sistema que explora a arquitetura da Web em toda sua potencialidade. A habilidade de poder obter uma informação em diferentes termos é possível por causa de uma separação do nome dos recursos advindos de um formulário.

REST é melhor utilizado para sistemas desacoplados de informação que devem produzir e consumir para várias fontes de tecnologias. Podemos definir suas propriedades como:

  • Alta performance
  • Escalável
  • Generalista
  • Simples
  • Fácil modificação
  • Extensível
Talvez já tenhamos ouvido falar dessa promessa em várias outras tecnologias, a pequena diferença é que REST nada tem a ver com linguagem, software e não é uma biblioteca (como ITIL) trata-se simplesmente de uma Arquitetura. Siga e tenha seus benefícios, não siga e estará fazendo qualquer outra coisa.

Obrigado e até a próxima
Fernando Anselmo

PS. Desculpe pela demora de artigos pois estava me aprofundando em duas tecnologias que me interessam Data Mining e REST. Então, me desculpe se daqui para frente serei meio tendencioso em manter esses dois assuntos sempre presentes neste blog. Seja bem vindo ao começo do futuro.

0 comentários:

Postar um comentário