Web Services REST – JAX-RS Curso de especialização em DESENVOLVIMENTO DE APLICAÇÕES WEB Italo Giovani Stefani [email protected] www.italost.com http://www.websemlimites.com.br/moodle JAX-RS • Java API for RESTful Web Service • Definição dos padrões REST em Java • Anotações baseadas em JSR-311 • Jersey é o pacote que implementa a definição JAX-RS JAX-RS • web.xml • Define o servlet que irá analizar as requisições e selecionar a classe Java e o método correto • Análise leva em consideração as anotações dos métodos JAX-RS • web.xml <servlet> <servlet-name>ServletAdaptor</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>ServletAdaptor</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping> JAX-RS • Annotations Annotation Descrição @PATH(your_path) Caminho para serviço e operação. @POST Método irá responder à uma requisição POST @GET Método irá responder à uma requisição GET @PUT Método irá responder à uma requisição PUT @DELETE Método irá responder à uma requisição DELETE @Produces(type, [more-types]) MIME type retornado pelo método @Consumes(type, [more-types]) MIME type esperado pelo método @PathParam Injeta valores da URL no parâmetro do método JAX-RS @Path("/hello") public class HelloRest { @GET @Produces(MediaType.TEXT_PLAIN) @Path("/sayPlainTextHello") public String sayPlainTextHello(){ return "Hello ItaloSt"; } @GET @Produces(MediaType.TEXT_HTML) @Path("/sayHtmlHello") public String sayHtmlHello(){ return "<html><title>Hello ItaloSt</title>" + "<body><h1>Hello ItaloSt</body></h1></html> "; } @GET @Produces(MediaType.TEXT_XML) @Path("/sayXmlHello") public String sayXmlHello(){ return "<?xml version=\"1.0\"?>" + "<root><hello>Hello ItaloSt</hello></root>"; } } JAX-RS http://localhost:8080/HelloRest/resources/hello/sayXmlHello http://localhost:8080/HelloRest/resources/hello/sayPlainTextHello http://localhost:8080/HelloRest/resources/hello/sayHtmlHello Exemplo bem simples • Criar novo projeto Web Exemplo bem simples • Criar novo projeto Web Exemplo bem simples • Importar bibliotecas JAX-RS e Jersey Exemplo bem simples • Criar novo pacote Exemplo bem simples • Criar nova classe Exemplo bem simples • Implementar classe Exemplo bem simples • Testando Exercícios • Implementar Pratica 01 em REST (somente o server) • Implementar Pratica 02 em REST (somente o server)