REST<br />IN<br />PEACE<br />com<br />JBOSS RESTEasy<br />
O que vamosfazerhoje, Cérebro?<br />Quemsoueu?<br />Conceitos<br />JAX-RS<br />Hands on!<br />Dúvidas<br />Referências<br />
Quemsoueu?<br />Graduado em Sistemas de Informação<br />Consultor – Powerlogic S.A.<br />Entuasiasta de software livre!<br />
O quesão web-services?<br />Aplicaçõesque se comunicamsobre HTTP<br />Universo de possibilidades<br />Integração entre dif...
Tipos de web-services<br />“Big” web-services<br />JAX-WS (SOAP, WSDL)<br />RESTFul web-services<br />JAX-RS<br />
JAX-WS<br />@WebService<br />public class CadastraFuncionarioWS {<br />@WebMethod<br />	public FuncionarioEntity cadastrar...
Troca de mensagens JAX-WS<br />Cliente<br />Servidor<br />Mensagem SOAP<br />JAX-WS runtime<br />JAX-WS runtime<br />
O que é REST?<br />Representational State Transfer<br />Estilo de arquiteturaondeos dados e as funcionalidadessãoconsidera...
O que é REST?<br />Representational State Transfer<br />
JAX-RS<br />@Path("/plc")<br />public class PlcBaseRest {<br />    private IPlcFacade iFacadePlc;<br />    @GET<br />    @...
Troca de mensagens JAX-RS<br />Cliente<br />Servidor<br />Mensagem “Plana”<br />Cliente HTTP<br />Servidor HTTP<br />
Vantagensdaarquitetura REST<br />Arquitetura simples, leve, escalável, com alta performance e pronta!<br />Sem a complexid...
Web-Oriented Architecture<br />
Quandousar REST?<br />Quandonãoprecisarmanter o estado (stateless)<br />Estrutura de caching para performance<br />Produto...
Quandousar REST?<br />Poucalargura de bandaoudispositivos com capacidade de processamentomenor<br />Fácilconfiguraçãopara ...
Outrasinformações…<br />JSR 311 – Java API for RESTful Web Services<br />http://jsr311.dev.java.net/<br />Implementação de...
Hands on!<br />A partir de uma classe qualquer…<br />public class MeuPrimeiroRest {<br />		public String recuperaNomeEvent...
Hands on!<br />Adicioneumaanotação @Path:<br />@Path(“/servicos”)<br />public class MeuPrimeiroRest {<br />		public String...
Hands on!<br />Adicione o método HTTP a ser utilizado:<br />@Path(“/servicos”)<br />public class MeuPrimeiroRest {<br />@G...
Hands on!<br />Outrosexemplos<br />recuperandoinformações do banco de dados<br />utilizandooutrosmétodos HTTP (via RESTCli...
Para exercitardepois…<br />@HEAD<br />@QueryParam<br />@Consumes<br />@Produces<br />@Provider<br />…<br />
Dúvidas…<br />
Referências<br />R. Fielding. Architectural Styles and the Design of Network-based Software Architectures. Ph.d dissertati...
Arthur Cesar Oreana<br />aoreana@gmail.com<br />twitter.com/arthur_oreana<br />
Upcoming SlideShare
Loading in...5
×

Rest In Peace com JBOSS RESTEasy

1,779

Published on

JAX-RS: API Java para Web Services RESTful

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,779
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rest In Peace com JBOSS RESTEasy

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

    Clipping is a handy way to collect important slides you want to go back to later.

×