Introdução ao RestfulX
Apesar de já ter escrito dois artigos sobre o assunto (um screencast e um tutorial), este artigo é o primeiro de uma série que pretendo escrever sobre o RestfulX, um framework incrível para quem quer integrar o Flex (ou AIR) ao RubyOnRails, Google App Engine, CouchDB, SQLite ou até mesmo integrar com o Juggernaut (plugin para o Rails para envio de mensagens do servidor para o cliente – server-push). Nos primeiros artigos eu vou focar a integração do Flex com o Rails. Assim como toda aula introdutória, este artigo vai ser um pouco “conceitual”, mas não por isso será menos importante que os artigos onde eu mostro algum código.
A idéia principal do RestfulX é trazer para o Flex os princípios de desenvolvimento do Rails, seguindo o conceito REST de comunicação entre cliente e servidor. Por exemplo, se definirmos no Rails que um projeto tem muitas tarefas, podemos fazer o seguinte no Rails:
@projeto = Projeto.new @tarefa = Tarefa.new @tarefa.projeto = @projeto @projeto.tarefas.size # O resultado é 1
O que o RestfulX faz é trazer toda essa facilidade para o Flex (através do ActionScript):
var proj:Projeto = new Projeto; var tarefa:Tarefa = new Tarefa; tarefa.projeto = proj; proj.tarefas.length; // O resultado é 1
Sobre o framework
O RestfulX foi criado sob o nome de Ruboss e a princípio era um framework proprietário, mas depois ele passou a ser gratuito e de código livre. Hoje ele é mantido por um de seus criadores, Dima Berastau.
O RestfulX compreende dois projetos principais, que são mantidos no GitHub: o projeto chamado restfulx e o outro chamado restfulx_framework.
O primeiro deles (restfulx) é todo gerador de código, feito em Ruby. Quando compilado ele gera a gem que é instalada quando executamos o comando gem install restfulx.
O segundo projeto (restfulx_framework) é o código da biblioteca (swc) baixada na pasta lib do projeto quando executamos o comando script/generate rx_config. Ele contém todas as classes responsáveis por serializar e desserializar (essa palavra existe?) todas as requisições entre cliente e servidor.
Um conceito importante para se ter em mente quando estamos desenvolvendo com RestfulX é que ele foi projetado para fazer o download dos dados à medida que o usuário vai solicitando. Dessa forma, quando o usuário solicita uma informação o framework solicita a informação ao servidor, trata os dados retornados e guarda esses dados no cache. A partir deste momento, quando o programa for acessar os dados já baixados o RestfulX consulta os dados do cache, ao invés de fazer outra requisição ao servidor. Isso diminui o tempo de resposta da aplicação e deixa o usuário mais feliz! Claro, quando o programador quiser ele pode recarregar os dados baixados anteriormente.
A comunicação entre cliente e servidor pode ser através de XML ou JSON. Pelo últimos tweets do Dima, parece que agora ele está estudando a possibilidade de disponibilizar a troca de informações via AMF, o que tornará a comunicação muito mais rápida entre o front e o backend.
Pela facilidade de se trabalhar com os dados armazenados no banco de dados, o programador tem mais tempo para se preocupar com o design da aplicação e da interação desta com o usuário. Se o programador dominar o Flex, o Ruby, o Rails e o RestfulX ele vai levar bem pouco tempo para fazer uma aplicação estupenda!
Bom esses são os conceitos principais sobre o RestfulX. Muitas coisas ficarão mais claras quando vierem os próximos artigos.
Para saber como criar e configurar um novo projeto usando o RestfulX, consulte este meu outro artigo.
Até a próxima!
Poderia avaliar este artigo, por favor? |
