O serviço web (web service) é uma forma de integração bem utilizada atualmente para realizar a integração entre aplicações. O Web Service REST é uma das formas de criar um serviço web, que utilizada muito o protocolo HTTP para realizar essa integração entre as aplicações.
O Web Service REST pode disponibilizar através do protocolo HTTP métodos para manipulação de informações, por exemplo: ao fazer uma requisição HTTP através do método GET para a URL http://localhost:8080/CinemaREST/servico/filmes
é possível obter um recurso, que nesse caso é uma lista de filmes. Se chamar essa URL através de um navegador podemos verificar o retorno desse Web Service REST.
Para consumir um Web Service REST, existem diversas implementações possíveis, uma delas é através da API Jersey, que é a implementação de referência do Java EE.
Crie uma aplicação web chamada CinemaJSF
, que utiliza o framework do JavaServer Faces para criação das páginas WEB.
Vamos alterar uma página inicial index.xhtml
, para que ela utilize um managed bean para consumir esse web serviço, a página ficará assim:
O outputText irá chamar o método getFilmesEmCartaz()
da managed bean CinemaMB
, que chama o web service REST que traz todos os filmes em cartaz.
Para utilizar a API do Jersey dentro da aplicação, clique com o botão direito do mouse em cima do nome do projeto e escolha o item Propriedades. Na tela de propriedades acesse a categoria Bibliotecas e adicione a biblioteca Jersey 1.8
(JAX-RS RI) através do menu Adicionar Biblioteca.
Vamos criar a managed bean CinemaMB
com a implementação do método:
Com a classe Client
é possível obter um resource web (recurso web) através da
URL do web service REST, e com esse recurso é possível chamar os métodos que o web service REST suporta, como: get
, post
, put
, delete
, etc.
Ao chamar o método wr.get(String.class)
, estamos esperando que a chamada para esse serviço devolva uma String, nesse exemplo essa String vem no formato JSON (JavaScript Object Notation), mas poderia ser uma String simples, um formato XML, etc. Ao executar a aplicação CinemaJSF
teremos a seguinte tela:
Para converter esse JSON em objeto Java, podemos usar uma API simples do Google chamada gson
(https://code.google.com/p/google-gson) que realiza essa conversão de maneira fácil. Primeiro vamos criar a classe Filme
que irá representar cada filme da lista:
Adicione a bibioteca do gson no projeto, clique com o botão direito do mouse em cima do nome do projeto e escolha o item Propriedades. Na tela de propriedades acesse a categoria Bibliotecas e adicione a biblioteca gson-2.2.2.jar
através do menu Adicionar JAR / Pasta.
Vamos alterar o CinemaMB
para utilizar a API do gson e converter o JSON em uma lista de filmes:
Agora vamos mudar a página index.xhtml
para mostrar uma tabela com os filmes:
A tela ficará com a seguinte aparência:
Conteúdos relacionados
- Criando uma tela de login com JSF
- Criando um template de página com JSF
- Criando um Web Service SOAP com EJB
- Criando uma aplicação com EJB e JPA