DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 
DevWare  
Novidade: DevMedia lança o DevWare - Saiba mais!


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo Java Magazine 48 - REST com Struts 2

Artigo publicado pela Java Magazine 48.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

Esse artigo faz parte da revista Java Magazine edição 48. Clique aqui para ler todos os artigos desta edição

REST com Struts 2

Crie serviços com a arquitetura que está mudando a face da web

Exponha informações de maneira simples e perca o medo dos serviços na web, utilizando a arquitetura Representational State Transfer e o framework Struts 2

Na era da Web 2.0 a integração entre aplicações se faz cada vez mais necessária. Vemos surgir rapidamente na internet sistemas que agrupam conteúdo e funcionalidades de fontes diferentes, criando um novo serviço – os chamados Mashups. Esse tipo de aplicação é em parte fruto do estilo de arquitetura orientado a serviços, SOA, na qual o desacoplamento e a eficiência da reutilização de código são máximos.

Nesse contexto, as aplicações devem estar preparadas para disponibilizar as informações de diferentes maneiras e formatos. Por exemplo, para uma requisição Ajax, a aplicação deve ser capaz de retornar a resposta no formato texto, XML ou JSON (JavaScript Object Notation). Já para uma requisição feita por uma aplicação desktop, talvez XML seja a opção mais conveniente. (A Edição 46 traz mais informações sobre a utilização de JSON com Ajax.)

Então nos deparamos com a necessidade de expor serviços de maneira fácil, sem muita codificação, e de prover informações em formatos adequados para integrações (HTML, XML, JSON etc.). Para tal, vamos utilizar a arquitetura REST e a infra-estrutura fornecida pelo Struts 2.

A arquitetura REST

REST é um acrônimo de Representational State Transfer (Transferência de Estado Representacional). É um termo utilizado para descrever um estilo arquitetural de sistemas acessíveis pela rede. Você pode ver mais detalhes no quadro “O que é REST”.

De forma simplificada, vamos considerar que uma aplicação segue o estilo REST se ela expõe suas funcionalidades – ou serviços – através de URLs bem definidas (representando recursos). Nesse tipo de aplicação, o resultado do acesso aos recursos se dá em um formato de fácil leitura, como por exemplo XML, sobre o protocolo HTTP simples. No resultado estão contidos os endereços de navegação para outros recursos pertinentes, na forma de hiperlinks. Aplicações REST podem ser utilizadas como alternativas mais simples aos web services tradicionais baseados em SOAP.

A aplicação de exemplo

Para desenvolver o exemplo, usamos o IDE Eclipse com o Web Tools Project (mas você pode usar seu IDE preferido, sendo necessárias poucas adaptações). Para testar a aplicação usamos o Apache Tomcat. Todos os arquivos do exemplo estão disponíveis no site da Java Magazine.

Construiremos uma aplicação (chamada “WSStruts2”) com apenas duas entidades: Aluno e Disciplina. Funcionalidades que operam sobre essas entidades serão expostas como serviços e acessadas através de URLs simples. O retorno desses serviços poderá ser em XML ou em JSON.

Como vimos, a abordagem de definir recursos através de URLs faz parte da arquitetura REST, segundo a qual todo serviço exposto deve ser endereçado por uma URL única. No exemplo, os dois serviços que vamos expor serão a listagem dos alunos e o detalhamento de um aluno específico. Suas URLs são respectivamente:

§         http://localhost:8080/WSStruts2/alunos

§         http://localhost:8080/WSStruts2/alunos/xxx

 

Na segunda URL, xxx representa o código de um aluno em particular (ex.: 102). Observe que não há parâmetros para definir qual o serviço que desejamos. Isto é feito para que fique claro o propósito da URL. Esse é outro detalhe da arquitetura REST: minimizar o uso de parâmetros na definição dos recursos (pois eles inibem o “aprofundamento” das URLs). Exemplificando, considere as seguintes URLs:

 

http://localhost:8080/WSStruts2/AlunosAction.action?id=102

http://localhost:8080/WSStruts2/alunos/102"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


é Engenheiro de Software, com experiência de mais de oito anos em tecnologias para desenvolvimento web. Tem as certificações: SCJP, SCWCD, SCEA(I).
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03