Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere

2,215 views

Published on

Esta apresentação contem um passo a passo mostrando a criação de um Web Service RESTFul utilizando a API Jersey no Eclipse, rodando nos servidores de aplicação Tomcat, JBoss e Websphere

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Criando um Web Service Restful com Jersey, Eclipse, JBoss, Tomcat, WebSphere

  1. 1. Web Services RESTful Passo a Passo para criação de um Web Service RESTfull com Jersey / Eclipse / Tomcat Testado também em JBoss e WebSphere Juliano Marcos Martins juliano.jmm@gmail.com http://jmmwrite.wordpress.com
  2. 2. Jersey ● API Java que implementa JAX-RS ● Open source ● Utilitários ● https://jersey.java.net/index.html ● Especificação https://jax-rs-spec.java.net/
  3. 3. Passo 1 ● Baixar a Jersey de https://jersey.java.net/download.html OBS: Existem várias formas diferentes de se implementar, a utilizada aqui, é a que considero a mais simples. Meu fim é didático, não me preocupo nesse momento em desenvolver um código a prova de falhas.
  4. 4. Passo 2 ● Criar um projeto Dinâmico WEB no Eclipse ● Dei o nome de RestTeste ● Adicionei o projeto a um EAR chamado RestTeste ● Marquei a opção abaixo para gerar o web.xml (caso nao tenha marcado, é possível gerar posteriormente)
  5. 5. Passo 3 ● Adicionar as libs abaixo da Jersey ao WEB-INF/lib do projeto
  6. 6. Passo 4 ● Alterei o arquivo WEB.XML – adicionei a parte em laranja, nela, estou mapeando os serviços que criarei. <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name>RestTeste</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description>JAX-RS Tools Generated - Do not modify</description> <servlet-name>Jersey REST Service</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
  7. 7. Passo 5 ● Criei uma classe chamada ClienteServico
  8. 8. Passo 6 ● Implementei o Web Service. Veja que anotei com @Path para “ouvir” em /clientes. ● O metodo irá “listar” clientes no formato JSON package br.com.jmmwrite.servicos; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriInfo; @Path("/clientes") public class ClientesServico { @GET @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") public String selectAll() { String clientes = "{'nome': 'Cliente 1','endereco': 'Rua do Cliente 1','RG':3030030066}," + "{'nome': 'Cliente 2','endereco': 'Rua do Cliente 2','RG':1010010011}"; return clientes; } }
  9. 9. Passo 6.1 ● No exemplo, estou simplesmente listando algo “hardcoded”. ● Normalmente, neste ponto iríamos efetuar uma invocação a um DAO que iria trazer os dados do banco, e utilizariamos alguma API, tal como GSON, para transformar a lista de clientes num objeto Json bem formatado. ● Também teríamos preocupação com algum mecanismo de segurança para não expor para o mundo um serviço dessa forma.
  10. 10. Passo 7 ● Clicamos no projeto criado e vamos em Run on Server para testar:
  11. 11. Passo 8 ● O projeto deve subir sem erros e ser acessível pela URL http://127.0.0.1:8080/RestTeste/rest/clientes/
  12. 12. Próximos passos ● Como sugestão de estudo, é interessante construir um CRUD. ● Uma dúvida comum é como receber parametros para Inserir/Alterar/Excluir informações, uma forma simples é com o código do proximo slide.
  13. 13. Passo 9 ● O método abaixo recebe parâmetros, adicione o mesmo ao seu Web Service: @GET @Path("/inserir") @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") public String insertCliente(@Context UriInfo uriInfo ) { // queryParam String nome = uriInfo.getQueryParameters().getFirst("nome"); String endereco = uriInfo.getQueryParameters().getFirst("endereco"); String rg = uriInfo.getQueryParameters().getFirst("rg"); String cliente = "{'nome': '" + nome + "','endereco': '" + endereco + "','rg':" + rg + "}"; return cliente; }
  14. 14. Passo 9 ● Invoque-o utilizando a URL http://127.0.0.1:8080/RestTeste/rest/clientes/inserir? nome=juliano&endereco=ruax&rg=5555555555599
  15. 15. Conclusão ● A ponta do Iceberg é essa. Com esta apresentação você consegue construir um simples CRUD. ● Cada vez mais o mundo demanda Web Services, principalemente com o número crescende de aplicações móveis que acessam aplicativos WEB e Legadas. ● Tenha em mente que implementar um serviço é relativamente fácil, qualquer pessoa implementa, porém, a preocupação com segurança e escalabilidade (volumetria/carga), não são comuns. Cuidado com os problemas que isso possa te gerar! ● Enjoy!

×