Escolar Documentos
Profissional Documentos
Cultura Documentos
Android
REST
Prof. Giovane Barcelos
giovane@professor.facensa.edu.br
Plano de Ensino
Contedo Programtico:
1. RESTFul
2. Jersey
3. Android
Pg. 2
Android e RESTFul
De 21
REST
O que REST?
REST (Representational State Transfer) um estilo
de arquitetura baseado em padres web e no
protocolo HTTP
Descrito por Roy Fielding em 2000
Qualquer coisa um recurso, onde os recursos so
acessados via mtodos padres do HTTP
Servidores REST fornecem acesso aos recursos e os
Clientes acessam e modificam estes recursos
Recursos deveriam ser identificados por
identificadores (IDs) globais e nicos
Os recursos podem ter diferentes representaes:
texto, XML, JSON, etc.
Pg. 3
Android e RESTFul
De 21
REST
Quais so os mtodos HTTP?
Idempotente: caracterstica de se repetir sem levar a
resultados diferentes
GET: define um acesso de leitura ao recurso sem
efeitos colaterais. O recurso nunca alterado atravs
de uma solicitao GET. O pedido no tem efeitos
colaterais (idempotentes)
PUT: cria um novo recurso. Ele tambm deve ser
idempotente
DELETE: remove os recursos. As operaes so
idempotentes
POST: atualiza um recurso existente ou cria um novo
recurso
Pg. 4
Android e RESTFul
De 21
REST
Pg. 5
Android e RESTFul
De 21
REST
E as especificaes?
JAX-RS:
Java define suporte via REST na especificao Java
Specification Request (JSR) 311
Esta especificao chamada de JAX-RS (Java Api para
RESTFul Web Services)
JAX-RS usa anotaes para definir REST
Jersey:
Jersey implementao de referncia da JSR 311
Fornece biblioteca com implementao das anotaes
da JAX-RS
No servidor instalado um servlet que predefine
classes identificadas pelos recursos RESTFull
No web.xml so realizadas as configuraes
Tambm possui um cliente para acesso aos recursos
http://dominio:port/nomeServico/urlPadrao/classeRest
Pg. 6
Android e RESTFul
De 21
REST
Pg. 7
Android e RESTFul
De 21
REST
Descrio
@PATH(your_path)
@POST
@GET
@PUT
@DELETE
@Produces(MediaType.T
EXT_PLAIN[, moretypes])
@Consumes(type[,
more-types])
@PathParam
Pg. 8
Android e RESTFul
De 21
Jersey
Target Runtime:
Web Server a ser
utilizado
Criar um Target,
quando <None>
Pg. 9
Android e RESTFul
De 21
Jersey
Pg. 10
Android e RESTFul
De 21
Jersey
Pg. 11
Android e RESTFul
De 21
Jersey
Pg. 12
Android e RESTFul
De 21
Jersey
Pg. 13
Android e RESTFul
De 21
Jersey
Android e RESTFul
De 21
Jersey
Servio
Pg. 15
Android e RESTFul
De 21
Jersey
Android e RESTFul
De 21
Jersey
resource = client.
resource("http://localhost:8081/WSTest/rest/oi").
path("pessoal").
queryParam("nome", "Beltrano");
System.out.println( resource.get(String.class) );
Pg. 17
Android e RESTFul
De 21
Android
Android e RESTFul
De 21
Android
E o cdigo cliente?
StrictMode.ThreadPolicy policy = new
StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Client client = ClientBuilder.newClient();
Log.w("REST",
client.target("http://192.168.0.57:8081/WSMatematica/re
st/oi").request().get(String.class));
Log.w("REST",
client.target("http://192.168.0.57:8081/WSMatematica/re
st/oi").path("pessoal").queryParam("nome",
"Beltrano").request().get(String.class));
Pg. 19
Android e RESTFul
De 21
Jersey
resource = client.
resource("http://localhost:8081/WSTest/rest/oi").
path("pessoal").
queryParam("nome", "Beltrano");
System.out.println( resource.get(String.class) );
Pg. 20
Android e RESTFul
De 21
Vamos Praticar
Pg. 21
Android e RESTFul
De 21