Por que eu devo ler este artigo:Neste artigo veremos como construir um serviço RESTful com o Play Framework. O Play é uma ferramenta para construção de sistemas web que torna muito fácil criar e disponibilizar seus projetos. Embora ele nos permita implementar sistemas completos para a web, teremos como foco as principais características que nos permitem criar serviços RESTful com JSON. Deste modo, analisaremos uma maneira diferenciada de criar esse tipo de web service que já se tornou um padrão de desenvolvimento.

Desde o seu lançamento, o Play Framework vem chamando a atenção de muitos desenvolvedores. Não por ser “apenas mais um framework web com uma nova proposta”, como diriam os críticos contrários à proliferação de frameworks. Mas porque, de fato, revolucionou a forma como construímos aplicativos desta natureza.

Para aqueles acostumados com o mundo JSF, por exemplo, o Play impressiona por sua simplicidade. Atualmente, ele é chamado apenas de Play e está com os holofotes ainda mais focados nele, pois a nova série 2.X agregou mais novidades, o que o leva a ser uma forte opção para o desenvolvimento de seu próximo projeto para a web.

O Play também é excelente para o desenvolvimento de serviços RESTful, pois já tem suporte nativo e facilita substancialmente a criação deles. Mas, não é apenas por ser fácil de usar, o Play é muito robusto e uma solução altamente escalável. Grandes empresas já trocaram sua API de serviços para o Play. Não acredita? O LinkedIn anunciou recentemente (ver seção Links) que toda sua API agora é baseada neste framework. Se o LinkedIn confia e usa, por que não você, ou sua empresa, também?

Ao desenvolver com o Play, você pode escolher entre programar com Java ou Scala, contudo, neste artigo, focaremos na vertente do Java, é claro! Caso você esteja chegando agora ao mundo do Play, notará uma diferença substancial: ele não usa a especificação do Servlet. Na verdade, ele é o que chamamos de um full stack framework. Em poucas palavras, o Play é a plataforma em si. Não é apenas uma biblioteca que você anexa ao seu projeto web e depois faz o deploy em um container como o Tomcat. Com ele, você desenvolve seu projeto e também faz o deploy deste projeto no próprio Play.

Ele permite isto, pois tem seu próprio servidor web, que é baseado no JBoss Netty (veja a seção Links para mais informações).

Caso você já tenha usado o Play na versão 1.X, deve lembrar que era possível criar um arquivo WAR do seu projeto para publicar em um servidor como o Tomcat. No entanto, a partir da versão 2.X o suporte oficial para realizar esta tarefa foi descontinuado, lhe deixando essa opção apenas através de plugins de terceiros (ver seção Links).

Neste artigo, vamos entender um pouco da arquitetura deste framework através de um aplicativo de exemplo baseado na ideia de listas de tarefas a fazer, os conhecidos TODOs. Nosso exemplo será, entretanto, baseado apenas em um serviço RESTful, sem uma interface com o usuário através de páginas HTML.

Sem Servlet? O que é Netty?

É provável que algumas pessoas torçam o nariz ao saber disto. Certamente dirão algo como “Servlet já é um padrão estabelecido, bem testado, etc. e etc.”. Contudo, será que Servlet é a única boa opção? É insubstituível?

Isto ocorreu não porque os desenvolvedores acharam a especificação Servlet ruim. Ela simplesmente não atendia ao que eles pretendiam para o framework. Então, porque usar o Netty e não a dupla Tomcat/Servlet, por exemplo?

O JBoss Netty não é, em sua essência, simplesmente um servidor HTTP. Ele é um framework para a construção de servidores e clientes para um determinado protocolo. Imagine que você acabou de inventar um protocolo melhor que o HTTP e agora quer construir um servidor igual a como é o Tomcat. Quais opções você teria? Primeiro, começar tudo do zero, codificando todo o seu servidor. Segundo, usar o Netty como base inicial, já que ele fornece uma boa parte do código que você precisaria criar.

O Netty não é novo, já existe desde 2004 e foi criado com uma ideia em mente: muitas vezes usamos um servidor ou protocolo para resolver problemas para os quais eles não foram destinados inicialmente. E isto pode significar, muitas vezes, uma perda de desempenho.

Embora na maioria das vezes isto não seja um problema com o qual você precise se preocupar, há situações onde se faz necessário ter um servidor altamente otimizado para que ele tenha um desempenho satisfatório em ambientes de alta carga.

Mas este não é o único caso. Por exemplo, é possível que você esteja criando um framework próprio e queira ter um servidor feito sob medida para ele, que se encaixe perfeitamente, tirando o máximo de proveito. E foi exatamente isto que a equipe do Play Framework fez.

Neste contexto, o Netty provê um framework para você criar servidores sob medida, conforme suas necessidades específicas. Ele simplifica muito a criação de servidores que têm como base o TCP e/ou UDP, é altamente escalável e já possui suporte nativo para o protocolo HTTP.

Montando o Ambiente

Para ter seu ambiente com o Play pronto para uso, você precisa, inicialmente, baixar o pacote de instalação no site oficial. Neste artigo usaremos a versão 2.1.1, que se encontra disp ...

Quer ler esse conteúdo completo? Tenha acesso completo