SlideShare una empresa de Scribd logo
1 de 24
REST IN PEACE com JBOSS RESTEasy
O que vamosfazerhoje, Cérebro? Quemsoueu? Conceitos JAX-RS Hands on! Dúvidas Referências
Quemsoueu? Graduado em Sistemas de Informação Consultor – Powerlogic S.A. Entuasiasta de software livre!
O quesão web-services? Aplicaçõesque se comunicamsobre HTTP Universo de possibilidades Integração entre diferentesplataformas e aplicações Interoperabilidade e extensibilidade
Tipos de web-services “Big” web-services JAX-WS (SOAP, WSDL) RESTFul web-services JAX-RS
JAX-WS @WebService public class CadastraFuncionarioWS { @WebMethod 	public FuncionarioEntity cadastrar(@WebParam( name="pessoa")Pessoa pessoa) { FuncionarioEntity funcionario = new FuncionarioEntity(); 	    try { 		funcionario.setNome(pessoa.getNome()); 		funcionario.setCpf(pessoa.getDocumento()); IAppDAOdao = AppPersistenciaLocator.getInstance().getDaoPadrao(); 		funcionario.setId(dao.inclui(funcionario)); dao.commit();         } catch (Exception e) { 	        ...         }         return funcionario; 	} }
Troca de mensagens JAX-WS Cliente Servidor Mensagem SOAP JAX-WS runtime JAX-WS runtime
O que é REST? Representational State Transfer Estilo de arquiteturaondeos dados e as funcionalidadessãoconsideradosrecursosqueporsuavezsãoacessados via URIs (links)
O que é REST? Representational State Transfer
JAX-RS @Path("/plc") public class PlcBaseRest {     private IPlcFacade iFacadePlc;     @GET     @Path("/listaac/{useCase}/{propriedade}")     @Produces("text/plain; charset=ISO-8859-1")     public String recuperaLista(@PathParam("useCase") String useCase,                  @PathParam("propriedade") String propriedade,                  @QueryParam("q") String q,                  @QueryParam("limit") @DefaultValue("10") int limit)                 throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {         List<PlcBaseVO> lista = null;         try {             IPlcFacade facade = getServiceFacade();             (...)             lista = recuperaLista(propriedade, q, limit, facade, context, classe);         } catch (PlcException e) {             (...)         }         return PlcRendererHelper.getInstance().montaSaidaXMLPipe(lista, propriedade);      } }
Troca de mensagens JAX-RS Cliente Servidor Mensagem “Plana” Cliente HTTP Servidor HTTP
Vantagensdaarquitetura REST Arquitetura simples, leve, escalável, com alta performance e pronta! Sem a complexidade dos web-services tradicionais (WS-*) Maisintegrados do que web-services quefazemuso de SOAP
Web-Oriented Architecture
Quandousar REST? Quandonãoprecisarmanter o estado (stateless) Estrutura de caching para performance Produtor e consumidor no mesmocontexto
Quandousar REST? Poucalargura de bandaoudispositivos com capacidade de processamentomenor Fácilconfiguraçãopara sites jáexistentes
Outrasinformações… JSR 311 – Java API for RESTful Web Services http://jsr311.dev.java.net/ Implementação de referência: Jersey (SUN) Outrasimplementações: JBOSS RESTEasy Apache CXF Restlet Spring 3.0
Hands on! A partir de uma classe qualquer… public class MeuPrimeiroRest { 		public String recuperaNomeEvento() { 			return “Java Day”; 		} }
Hands on! Adicioneumaanotação @Path: @Path(“/servicos”) public class MeuPrimeiroRest { 		public String recuperaNomeEvento() { 			return “Java Day”; 		} }
Hands on! Adicione o método HTTP a ser utilizado: @Path(“/servicos”) public class MeuPrimeiroRest { @GET      @Path(“/recuperaNome”)      public String recuperaNomeEvento() {          return “Java Day”;      } }
Hands on! Outrosexemplos recuperandoinformações do banco de dados utilizandooutrosmétodos HTTP (via RESTClient)
Para exercitardepois… @HEAD @QueryParam @Consumes @Produces @Provider …
Dúvidas…
Referências R. Fielding. Architectural Styles and the Design of Network-based Software Architectures. Ph.d dissertation, University of California, Irvine, 2000. http://roy.gbiv.com/pubs/dissertation/top.htm REST Wiki. Web site.http://rest.blueoxen.net/cgi-bin/wiki.pl Representational State Transfer. Web site, Wikipedia.http://en.wikipedia.org/wiki/Representational_State_Transfer
Arthur Cesar Oreana aoreana@gmail.com twitter.com/arthur_oreana

Más contenido relacionado

Similar a RESTful web services com JAX-RS

De Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupDe Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupWagner Roberto dos Santos
 
Android webservice
Android webserviceAndroid webservice
Android webserviceAlan Echer
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0jesuinoPower
 
Apache NiFi com postgresql
Apache NiFi com postgresqlApache NiFi com postgresql
Apache NiFi com postgresqlGerdan Santos
 
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018Davy Alvarenga Machado
 
Interagindo com web services RPC, SOAP e REST utilizando PHP
Interagindo com web services RPC, SOAP e REST utilizando PHPInteragindo com web services RPC, SOAP e REST utilizando PHP
Interagindo com web services RPC, SOAP e REST utilizando PHPEduardo Cesar
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Helder da Rocha
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EERodrigo Cândido da Silva
 
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
Javaone Brazil 2012: Integrando Ext JS 4 com Java EEJavaone Brazil 2012: Integrando Ext JS 4 com Java EE
Javaone Brazil 2012: Integrando Ext JS 4 com Java EELoiane Groner
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Ramon Durães
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stackSidney Roberto
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWSDextra
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSRodrigo Branas
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONAmbiente Livre
 

Similar a RESTful web services com JAX-RS (20)

De Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupDe Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações Mashup
 
Android webservice
Android webserviceAndroid webservice
Android webservice
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0Novidades do JAX-RS 2.0
Novidades do JAX-RS 2.0
 
Java wsdp
Java wsdpJava wsdp
Java wsdp
 
Apache NiFi com postgresql
Apache NiFi com postgresqlApache NiFi com postgresql
Apache NiFi com postgresql
 
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018Apache NiFi com PostgreSQL - PGConf.Brasil 2018
Apache NiFi com PostgreSQL - PGConf.Brasil 2018
 
Interagindo com web services RPC, SOAP e REST utilizando PHP
Interagindo com web services RPC, SOAP e REST utilizando PHPInteragindo com web services RPC, SOAP e REST utilizando PHP
Interagindo com web services RPC, SOAP e REST utilizando PHP
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
 
GUJavaSC - Java EE 7 In Action
GUJavaSC - Java EE 7 In ActionGUJavaSC - Java EE 7 In Action
GUJavaSC - Java EE 7 In Action
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
 
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
 
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
Javaone Brazil 2012: Integrando Ext JS 4 com Java EEJavaone Brazil 2012: Integrando Ext JS 4 com Java EE
Javaone Brazil 2012: Integrando Ext JS 4 com Java EE
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stack
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWS
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJS
 
Criando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSONCriando e consumindo webservice REST com PHP e JSON
Criando e consumindo webservice REST com PHP e JSON
 

RESTful web services com JAX-RS

  • 1. REST IN PEACE com JBOSS RESTEasy
  • 2. O que vamosfazerhoje, Cérebro? Quemsoueu? Conceitos JAX-RS Hands on! Dúvidas Referências
  • 3. Quemsoueu? Graduado em Sistemas de Informação Consultor – Powerlogic S.A. Entuasiasta de software livre!
  • 4. O quesão web-services? Aplicaçõesque se comunicamsobre HTTP Universo de possibilidades Integração entre diferentesplataformas e aplicações Interoperabilidade e extensibilidade
  • 5. Tipos de web-services “Big” web-services JAX-WS (SOAP, WSDL) RESTFul web-services JAX-RS
  • 6. JAX-WS @WebService public class CadastraFuncionarioWS { @WebMethod public FuncionarioEntity cadastrar(@WebParam( name="pessoa")Pessoa pessoa) { FuncionarioEntity funcionario = new FuncionarioEntity(); try { funcionario.setNome(pessoa.getNome()); funcionario.setCpf(pessoa.getDocumento()); IAppDAOdao = AppPersistenciaLocator.getInstance().getDaoPadrao(); funcionario.setId(dao.inclui(funcionario)); dao.commit(); } catch (Exception e) { ... } return funcionario; } }
  • 7. Troca de mensagens JAX-WS Cliente Servidor Mensagem SOAP JAX-WS runtime JAX-WS runtime
  • 8. O que é REST? Representational State Transfer Estilo de arquiteturaondeos dados e as funcionalidadessãoconsideradosrecursosqueporsuavezsãoacessados via URIs (links)
  • 9. O que é REST? Representational State Transfer
  • 10. JAX-RS @Path("/plc") public class PlcBaseRest { private IPlcFacade iFacadePlc; @GET @Path("/listaac/{useCase}/{propriedade}") @Produces("text/plain; charset=ISO-8859-1") public String recuperaLista(@PathParam("useCase") String useCase, @PathParam("propriedade") String propriedade, @QueryParam("q") String q, @QueryParam("limit") @DefaultValue("10") int limit) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException { List<PlcBaseVO> lista = null; try { IPlcFacade facade = getServiceFacade(); (...) lista = recuperaLista(propriedade, q, limit, facade, context, classe); } catch (PlcException e) { (...) } return PlcRendererHelper.getInstance().montaSaidaXMLPipe(lista, propriedade); } }
  • 11. Troca de mensagens JAX-RS Cliente Servidor Mensagem “Plana” Cliente HTTP Servidor HTTP
  • 12. Vantagensdaarquitetura REST Arquitetura simples, leve, escalável, com alta performance e pronta! Sem a complexidade dos web-services tradicionais (WS-*) Maisintegrados do que web-services quefazemuso de SOAP
  • 14. Quandousar REST? Quandonãoprecisarmanter o estado (stateless) Estrutura de caching para performance Produtor e consumidor no mesmocontexto
  • 15. Quandousar REST? Poucalargura de bandaoudispositivos com capacidade de processamentomenor Fácilconfiguraçãopara sites jáexistentes
  • 16. Outrasinformações… JSR 311 – Java API for RESTful Web Services http://jsr311.dev.java.net/ Implementação de referência: Jersey (SUN) Outrasimplementações: JBOSS RESTEasy Apache CXF Restlet Spring 3.0
  • 17. Hands on! A partir de uma classe qualquer… public class MeuPrimeiroRest { public String recuperaNomeEvento() { return “Java Day”; } }
  • 18. Hands on! Adicioneumaanotação @Path: @Path(“/servicos”) public class MeuPrimeiroRest { public String recuperaNomeEvento() { return “Java Day”; } }
  • 19. Hands on! Adicione o método HTTP a ser utilizado: @Path(“/servicos”) public class MeuPrimeiroRest { @GET @Path(“/recuperaNome”) public String recuperaNomeEvento() { return “Java Day”; } }
  • 20. Hands on! Outrosexemplos recuperandoinformações do banco de dados utilizandooutrosmétodos HTTP (via RESTClient)
  • 21. Para exercitardepois… @HEAD @QueryParam @Consumes @Produces @Provider …
  • 23. Referências R. Fielding. Architectural Styles and the Design of Network-based Software Architectures. Ph.d dissertation, University of California, Irvine, 2000. http://roy.gbiv.com/pubs/dissertation/top.htm REST Wiki. Web site.http://rest.blueoxen.net/cgi-bin/wiki.pl Representational State Transfer. Web site, Wikipedia.http://en.wikipedia.org/wiki/Representational_State_Transfer
  • 24. Arthur Cesar Oreana aoreana@gmail.com twitter.com/arthur_oreana