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
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. 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. 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. 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)
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. 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. Passo 7
● Clicamos no projeto criado e vamos em Run on Server
para testar:
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. 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. 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. Passo 9
● Invoque-o utilizando a URL
http://127.0.0.1:8080/RestTeste/rest/clientes/inserir?
nome=juliano&endereco=ruax&rg=5555555555599
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!