Escolar Documentos
Profissional Documentos
Cultura Documentos
HttpRequester (Firefox)
DHC (Chrome)
Objetivo Descrio
A API vai oferecer um conjunto de anotaes e classes/interfaces
Foco em POJOs associadas que possam ser usadas com POJOs para exp-los
como recursos Web
HTTP assumido como o protocolo de aplicao, permitindo
Explorar bem o HTTP
utilizar os diferentes mtodos implementados no protocolo
A API permitir o uso de diversos content-types. O suporte aos
Independncia de content-types ser feito de uma forma plugvel que defina uma
formato forma padro de extenso para o suporte a novos tipos de
contedo
Independncia de Ser possvel o deployment em qualquer servidor de aplicaes
container Java EE e tambm nos containers de Servlets
@Path(/repositorio/{id})
Pode ser colocada na declarao de classe ou de um
mtodo e possui o elemento value obrigatrio
Por este elemento definimos o prefixo da URI que a classe
ou o mtodo ir atender
Aqui a URI relativa /repositorio/{id}, na qual {id} o valor
do parmetro id, fornecido junto a URI
Geralmente includa na declarao de um mtodo quando
queremos atribuir um caminho mais especfico para um
recurso, de forma a especializar nosso mtodo
@Produces
Especifica os tipos MIME que o mtodo produzir como
resposta para o cliente
@Consumes
Especificas os tipos MIME que o mtodo pode receber do
cliente
Para ambos podemos utilizar
MediaType.APPLICATION_XML
MediaType.APPLICATION_JSON
MediaType.TEXT_PLAIN
MediaType.TEXT_HTML
Instituto Federal de Educao, Cincia e Tecnologia Sul-Rio-Grandense
10
Campus Sapucaia do Sul
Principais anotaes JAX-RS
Extraindo Valores
Anotao Descrio
@PathParam Especifica que o valor do parmetro, ser extrado do valor de um
parmetro indicado na URI, colocado na anotao @Path({param})
@QueryParam Extrai o valor do parmetro da URI Ex: ?idade=29&uf=RS
@FormParam Associa um parmetro a um campo de formulrio enviado pelo
cliente
@MatrixParam Extrai informaes do caminho de uma URI Ex: ;idade=29;uf=RS
@CookieParam Extrai os valores de cookies vinculados sesso
@HeaderParam Extrai dados do cabealho de uma requisio HTTP
Extraindo Valores
Algumas observaes:
Uma mesma varivel pode ser especificada mltiplas vezes
em uma anotao @Path.
Exemplo: @Path("/users/{nome}/{nome}")
Neste caso, s sero aceitas requisies a URLs cujos dois ltimos
componentes sejam iguais
Variveis podem ser vazias. Exemplo:
@Path("/users/{nome}/home")
Cliente acessa URL /users//home A varivel nome ganha o valor
(String vazia)
Note ainda que a anotao @Path pode ser usada para
mtodos especficos
Aquele mtodo ser mapeado para aquela URL
Instituto Federal de Educao, Cincia e Tecnologia Sul-Rio-Grandense
14
Campus Sapucaia do Sul
Principais anotaes JAX-RS
Classes
@XmlRootElement
Indica que a classe ser representada como um elemento XML
principal
Pode alterar o nome do elemento atravs do valor name=
@XmlAccessorType(XmlAccessType.FIELD)
Indica a localizao das anotaes, no caso esto nos campos do
POJO
@XmlType(propOrder = {"id", "nome", "email", "cpf",
"endereco", "nascimento"})
Indica que a classe mapeia informaes especficas
Permite determinar, por exemplo, a order que os elementos sero
exibidos
Instituto Federal de Educao, Cincia e Tecnologia Sul-Rio-Grandense
18
Campus Sapucaia do Sul
Principais anotaes - JAXB
Classes
@XmlEnum(String.class)
Permite mapear uma classe enum com as devidas anotaes em
cada valor
Atributos
@XmlEnumValue(ACAO)
Mapeia um valor de um enum
@XmlElementWrapper
Mapeia um objeto do tipo lista (com tags filhas)
@XmlElement(name = "contrato")
Utilizada tanto nos atributos quanto nos mtodos, indica que o
atributo ser um atributo XML
Instituto Federal de Educao, Cincia e Tecnologia Sul-Rio-Grandense
19
Campus Sapucaia do Sul
Principais anotaes - JAXB
Atributos
@XmlAttribute(name=num_cpf)
Mapeia o valor de um campo como atributo no arquivo XML
@XmlList
Permite mapear atributos como listas dentro de uma nica tag XML
@XmlSchemaType(name = "date")
Permite definir o mapeamento de diferentes tipos em Java
@XmlTransient
Permite definir que um atributo no ser utilizado nas aes de
serializao e deserializao de objetos
Exemplo WADL
Configurao de um RESTful
Informar web
aqui service
o padro de URL
utilizada
ApplicationConfig.java
Mtodo GET
Consumindo GET
Construtor do cliente
Consumo
Consumindo GET
Lista
Mtodo POST
Consumindo POST
Mtodo PUT
Consumindo PUT
Mtodo DELETE
Consumindo DELETE