BT

REST em Java: chegou a hora do WADL no JAX-RS?

por Mark Little , traduzido por Adalberto Zanata em 22 Nov 2012 |

No JavaOne deste ano, aconteceu o painel JavaEE.Next(): Java EE 7, 8 e Além, envolvendo Oracle, IBM, Red Hat e Caucho. Nele foram discutidos vários aspectos do futuro do Java EE e respondidas questões do público. A intenção era focar em PaaS, mobile e NoSQL, mas ficou claro o grande interesse em REST, particularmente em torno da WADL. A WADL (Web Application Description Language) existe há alguns anos e tem sido amplamente discutida há no mínimo sete anos, como já relatamos em 2005:

Para descrever seu serviço XML sobre HTTP, várias opções têm sido discutidas, desde oSMEX-D (proposta por Tim Bray) até o NSDL, além de uma série de outras alternativas. Porém, a maioria dessas propostas foi criada em 2005 ou antes. Desde então, não houve adoção significativa. Em 2005, Marc Hadley (um dos líderes da JSR-311, uma API Java para serviços RESTful) propôs a WADL. Desde então, foram criadas diversas ferramentas para suportá-la. Mark Nottingham, arquiteto do Yahoo, por exemplo, mantém uma folha de estilo para gerar documentação a partir da WADL.

A WADL terminou fragmentando a comunidade, entre os que acreditamque seja necessária e os que não acreditam. Por exemplo, em 2007 Mark Baker afirmou:

Todos os serviços expõem a mesma interface. Isso garante a maior parte do seu baixo acoplamento, e é oprincípio diferenciador da RPC (chamada remota de procedimentos). Então, se estiver sendo escrito ou gerado código baseado contratos e interfaces, e que não possa ser vinculado de forma tardia a todos os recursos e em toda parte, não se está fazendo REST. O RPC está morto!

Há quem goste e frequentemente compare a WADL à WSDL (Web Service Description Language):

Com WSDL é possível simplesmente gerar o código de interfaces para web services, o que economiza muito trabalho. Será que não é possível fazer o mesmo com os serviços web RESTful? Sim, e é possível fazer isso, com a WADL, que permite descrever essencialmente qualquer API baseada em HTTP, para qualquer web service, incluindo web services SOAP. Mas também permite descrever as APIs do Flickr, do Twitter e do Yahoo em WADL e pode gerar o código proxy do cliente para fazer a interface com essas APIs web. A WADL é parecida com WSDL, só que mais abrangente, sendo generalizada para suportar também o REST e essencialmente qualquer tipo de web service baseado em XML.

Mas isso pode ser uma faca de dois gumes, como apontado por um dos comentaristas ao artigo citado acima.

Alguns erros fundamentais foram cometidos no artigo. Foi dito que "o formato dos resultados e dos dados enviados a um web service REST não passam de um simples XML". Mas os media types são exatamente as definições de formatos de mensagens; são associados às informações sobre como processar os dados e acessar novos recursos, com base em links presentes na representação. Além disso, a WADL provavelmente não vai durar muito; não é RESTful em tudo e cria forte acoplamento entre cliente e provedor de serviços.

Por alguns anos, entre 2005 e 2008, esse debate rugiu, junto com muitos outros na área de REST. Nos últimos tempos parece ter diminuído, e uma perspectiva mais pragmática acabou se estabelecendo. Alguns grupos decidiram que, apesar de todos os problemas percebidos com a WADL, ela é uma opção de suporte aos desenvolvedores; outros grupos se abstiveram completamente. O Jersey, a implementação de referência do JAX-RS, suporta a WADL de forma nativa. Por outro lado, outras implementações JAX-RS, como o RESTEasy, são reticentes.

Isso nos leva de volta ao painel do JavaOne, em que várias pessoas da plateia, incluindo os líderes da especificação JAX-RS, estavam ansiosas para saber se a WADL deve ou não ser totalmente suportada em uma versão futura do JAX-RS. Os membros do painel não se posicionaram claramente e se referiram à multiplicidade de serviços RESTful que têm sido implementados com sucesso sem a WADL. Mas o público pareceu solidário com a adição da WADL ao JAX-RS.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Suporte a WADL by Fernando Ribeiro

Não vejo problema nenhum na WADL, que realmente facilita a criação de clientes e permite que as ferramentas descubram serviços automaticamente.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

1 Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT