Your SlideShare is downloading. ×
0
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Solimena Dellafiore - Applicazioni RESTful con Jersey : come realizzare un microblog in 10 minuti

1,377

Published on

Attraverso l'approccio REST è possibile realizzare web service sfruttando al massimo l'eleganza e la potenza del protocollo HTTP. Mettendo mani al codice, si vedrà come sia possibile realizzare in 10 …

Attraverso l'approccio REST è possibile realizzare web service sfruttando al massimo l'eleganza e la potenza del protocollo HTTP. Mettendo mani al codice, si vedrà come sia possibile realizzare in 10 minuti un microblog RESTful, tipo twitter, e come i tool di sviluppo rendano il tutto ancora più semplice. Per la realizzazione del back end, si utilizzerà Jersey, la reference implementation Open Source di Sun della specifica JAX-RS (JSR-311), già integrata nella piattaforma JEE6.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,377
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Applicazioni RESTful con Jersey<br />Come realizzare un microblog in 10 minuti<br />
  • 2. Stefano Dellafiore<br />Senior Consultant @<br />Milano<br />About us<br />
  • 3. Riccardo Solimena<br />Senior Consultant @<br />Lugano<br />About us<br />
  • 4. JIP – Java Italian Portal<br />Sito Internet - http://www.javaportal.it/<br /><ul><li>Il portale è stato realizzato e modellato in modo da accompagnare quei programmatori che vivono il proprio lavoro come passione e creatività professionale.
  • 5. Tutte le attività di JavaPortal sono gratuite.
  • 6. La community è sempre lieta di accogliere nuovi collaboratori che contribuiscano all’arricchimento del sito,che abbiano nuove idee e la voglia di curarle.</li></li></ul><li>Sommario<br /><ul><li>ReST: la teoria
  • 7. ReST e Java: JAX-RS (JSR 311)
  • 8. Le implementazioni di JAX-RS
  • 9. Jersey
  • 10. Demo!</li></li></ul><li>ReST: la teoria – Cosa NON è ReST<br /><ul><li>Non è (solo) una “buzzword”
  • 11. Non è un framework
  • 12. Non è un prodotto
  • 13. Non è la soluzione di tutti i problemi</li></li></ul><li>Ciao Roy, cos’è questo rest di cui tutti parlano?<br />ReST: la teoria – Cosa è ReST<br />Chiediamolo a Roy*…<br />* Roy T. Fielding Ph.D dissertation, “Architectural Styles and the Design of Network-based Software Architectures”, (2000) <br />
  • 14. RepresentationalState Transfer, uno stile architetturale per un sistema di ipermedia distribuito”<br />ReST: la teoria – Cosa è ReST<br />Chiediamolo a Roy*…<br />* Roy T. Fielding Ph.D dissertation, “Architectural Styles and the Design of Network-based Software Architectures”, (2000) <br />
  • 15. …<br />ReST: la teoria – Cosa è ReST<br />Chiediamolo a Roy*…<br />* Roy T. Fielding Ph.D dissertation, “Architectural Styles and the Design of Network-based Software Architectures”, (2000) <br />
  • 16. Ecco, bene. Dovevo fare la tesi di dottorato, così ho preso l’HTTP, ne ho estratto i principi base e con il marketing abbiamo pensato ad un nome “cool”.<br />REST è il risultato<br />Ok, uno stile architetturale è un insieme di vincoli imposti all’interazione fra componenti, al fine di ottenere alcune proprietà desiderabili quali scalabilità e uniformità d’accesso<br />ReST: la teoria – Cosa è ReST<br />Chiediamolo a Roy*…<br />* Roy T. Fielding Ph.D dissertation, “Architectural Styles and the Design of Network-based Software Architectures”, (2000) <br />
  • 17. … ……<br />ReST: la teoria – Cosa è ReST<br />Chiediamolo a Roy*…<br />* Roy T. Fielding Ph.D dissertation, “Architectural Styles and the Design of Network-based Software Architectures”, (2000) <br />
  • 18. sonosicurochesaidicosastoparlando.<br />Tempo fa ho scrittol’HTTP, lo conosci?<br />ReST: la teoria – Cosa è ReST<br />Chiediamolo a Roy*…<br />* Roy T. Fielding Ph.D dissertation, “Architectural Styles and the Design of Network-based Software Architectures”, (2000) <br />
  • 19. Sìsì!!<br />ReST: la teoria – Cosa è ReST<br />Chiediamolo a Roy*…<br />* Roy T. Fielding Ph.D dissertation, “Architectural Styles and the Design of Network-based Software Architectures”, (2000) <br />
  • 20. Ecco, bene. Dovevo fare la tesi di dottorato, così ho preso l’HTTP, ne ho estratto i principi base e con il marketing abbiamo pensato ad un nome “cool”.<br />REST è il risultato<br />ReST: la teoria – Cosa è ReST<br />Chiediamolo a Roy*…<br />* Roy T. Fielding Ph.D dissertation, “Architectural Styles and the Design of Network-based Software Architectures”, (2000) <br />
  • 21. Chiediamolo a Roy*…<br />Sìsì!!<br />…<br />Ciao Roy, cos’è questo rest di cui tutti parlano?<br />Tutto chiaro adesso, grazie mille Roy.<br />ReST: la teoria – Cosa è ReST<br />* Roy T. Fielding Ph.D dissertation, “Architectural Styles and the Design of Network-based Software Architectures”, (2000) <br />
  • 22. Principi del REST: Intro<br />
  • 23. Principi del REST: 1 di 4<br />Identificazione univoca delle risorse<br /><ul><li>Ogni risorsa ha un Id univoco (ad esempio URI)</li></ul>Una url, una risorsa! <br />http://roma.javaday.it/squadra/blu<br />4<br />Java<br />1<br />7<br />10<br />
  • 24. Principi del REST: 1 di 4<br />Identificazione univoca delle risorse<br /><ul><li>Ogni risorsa ha un Id univoco (ad esempio URI)</li></ul>Una url, una risorsa! <br />http://roma.javaday.it/giocatore/java<br />4<br />Java<br />1<br />7<br />10<br />
  • 25. Principi del REST: 2 di 4<br />Interfaccia d’accesso uniforme<br /><ul><li>Le risorse sono manipolate attraverso lo stesso insieme di metodi</li></ul>CRUD<br />4<br />Java<br />1<br />7<br />
  • 26. Principi del REST: 2 di 4<br />Interfaccia d’accesso uniforme<br /><ul><li>Le risorse sono manipolate attraverso lo stesso insieme di metodi</li></ul>CRUD<br />Create (crea giocatore)<br />4<br />Java<br />1<br />7<br />10<br />
  • 27. Principi del REST: 2 di 4<br />Interfaccia d’accesso uniforme<br /><ul><li>Le risorse sono manipolate attraverso lo stesso insieme di metodi</li></ul>CRUD<br />Read(recupera giocatore o squadra)<br />4<br />Java<br />1<br />7<br />10<br />
  • 28. Principi del REST: 2 di 4<br />Interfaccia d’accesso uniforme<br /><ul><li>Le risorse sono manipolate attraverso lo stesso insieme di metodi</li></ul>CRUD<br />Update (aggiorna giocatore)<br />4<br />Java<br />1<br />7<br />10<br />
  • 29. Principi del REST: 2 di 4<br />Interfaccia d’accesso uniforme<br /><ul><li>Le risorse sono manipolate attraverso lo stesso insieme di metodi</li></ul>CRUD<br />Delete (elimina squadra)<br />DELETE http://roma.javaday.it/squadra/blu<br />4<br />Java<br />1<br />7<br />10<br />
  • 30. Principi del REST: 3 di 4<br />Comunicazione stateless di rappresentazioni delle risorse<br /><ul><li>Dai al client ciò che ti chiede!</li></ul>non mantengono lo stato…<br />Ma… chi sei?<br />
  • 31. Principi del REST: 3 di 4<br />Comunicazione stateless di rappresentazioni delle risorse<br /><ul><li>Dai al client ciò che ti chiede!</li></ul>…ma eseguono una richiesta<br />GET Nemo location<br />P. Sherman, 42 Wallaby Way, Sydney<br />
  • 32. Principi del REST: 3 di 4<br />Comunicazione stateless di rappresentazioni delle risorse<br /><ul><li>Dai al client ciò che ti chiede!</li></li></ul><li>Principi del REST: 3 di 4<br />Comunicazione stateless di rappresentazioni delle risorse<br /><ul><li>Dai al client ciò che ti chiede!</li></li></ul><li>Principi del REST: 4 di 4<br />Ipertesto come motore dello stato dell’applicazione (HATEOAS)<br /><ul><li>Inserisci link alle risorse correlate nella risposta.</li></ul>&lt;giocatore numero=&quot;7java&quot;&gt;<br /> &lt;link href=&quot; http://roma.javaday.it/squadra/blu&quot; rel=“squadra&quot;/&gt;<br /> &lt;link href=&quot; http://roma.javaday.it/giocatore/7java&quot; rel=“self&quot;/&gt;<br /> &lt;caratteristiche&gt;<br /> &lt;caratteristica type=&quot;capelli&quot; value=&quot;blu&quot; /&gt;<br /> &lt;caratteristica type=&quot;baffi&quot; value=&quot;no&quot; /&gt;<br /> &lt;caratteristica type=&quot;altezza&quot; value=&quot;185&quot; /&gt;<br /> &lt;/caratteristiche&gt;<br />&lt;/giocatore&gt;<br />
  • 33. HTTP è RESTful?<br />Ma HTTP non e’ gia’<br />tutto questo?<br />
  • 34. HTTP è RESTful<br />Si’!!!<br />HTTP è RESTful<br />
  • 35. HTTP è RESTful – Principi REST/HTTP<br />
  • 36. Essere RESTful<br />
  • 37. JAX-RS (JSR 311)<br />Api Java per lo sviluppo di Web ServicesReSTful<br />Versione attuale 1.1<br />inclusa nella piattaforma JEE6<br />POJO (PlainOld Java Object) + Annotation = Risorsa<br />Server-Side Only (Client previsto Version 2.0)<br />JCP<br />
  • 38. Risorsa d’esempio<br />@Path(“/blogs/”)<br />Identifica il frammento di URI alla quale la risorsa risponderà<br />http://localhost:8080/resources/blogs/...<br />
  • 39. Risorsa d’esempio<br />@Context<br />DependencyInjection<br />Principio di Hollywood – Non chiamarmi, ti chiamerò io <br />Configurazione dinamica dell’URI Info<br />
  • 40. Risorsa d’esempio<br />@GET - @POST<br />Annotazioni sui metodi della classe che risponderanno alle corrispondenti chiamate HTTP<br />
  • 41. Risorsa d’esempio<br />@Produces({“application/json”, “…”})<br />Indica il tipo di rappresentazione che il server dichiara di essere in grado di produrre per quella risorsa<br />
  • 42. Risorsa d’esempio<br />@Consumes({“application/xml”, “…”})<br />Indica il tipo di rappresentazione che il server dichiara di essere in grado di interpretare<br />
  • 43. Risorsa d’esempio<br />@QueryParam<br />@PathParam<br />@FormParam<br />…<br />Utility per l’estrazione dei parametri dall’URL<br />
  • 44. Cosa avviene in pratica 1 di 2 <br />Request HTTP<br />GET http://roma.javaday.it/resources/blogs<br />
  • 45. Cosa avviene in pratica 1 di 2 <br />Application<br />Resource 1<br />Resource 2<br />Resource N<br />
  • 46. Cosa avviene in pratica 1 di 2 <br />
  • 47. Cosa avviene in pratica 1 di 2 <br />Response<br />200 OK<br />Content-Type: text/xml<br />&lt;xml&gt;…&lt;/xml&gt;<br />
  • 48. Cosa avviene in pratica 2 di 2<br />1.<br />2.<br />
  • 49. Cosa avviene in pratica 2 di 2<br />1.<br />
  • 50. Alcune Implementazioni (ad oggi)<br />
  • 51. Il nostro Microblog<br />Creiamo un’applicazione web-based che permetta di editare semplici contenuti testuali (tweet) con la possibilità di organizzarli in sezioni…. Un microblog collaborativo<br />
  • 52. Microblog - Layers<br />Client<br />Server<br />Helper & Converter<br />Glassfish v3<br />
  • 53. Microblog - ER<br />
  • 54. Microblog – Class Diagram<br />
  • 55. Proxy Javascript<br />Server<br />Client<br />MicroblogResource<br />Microblog.js<br />Microblog<br />Http<br />MicroblogConverter<br />
  • 56. Microblog - Funzionalità<br />
  • 57. Cosa realizzeremo<br />POST<br />GET<br />DELETE<br />POST<br />DELETE<br />PUT<br />GET<br />
  • 58. DEMO<br />10 min DEMO<br />
  • 59. Riferimenti<br />
  • 60. Per approfondire<br /><ul><li>http://it.wikipedia.org/wiki/Representational_State_Transfer
  • 61. http://it.wikipedia.org/wiki/HTTP
  • 62. http://wiki.answers.com/Q/What_is_HTML_stateless_protocol
  • 63. http://roy.gbiv.com/
  • 64. https://jersey.dev.java.net/ 
  • 65. http://java.sun.com/javaee/technologies/persistence.jsp
  • 66. http://en.wikipedia.org/wiki/JAX-RS
  • 67. https://glassfish.dev.java.net/
  • 68. http://en.wikipedia.org/wiki/Create,_read,_update_and_delete
  • 69. http://www.json.org/
  • 70. http://it.wikipedia.org/wiki/Object-relational_mapping
  • 71. http://it.wikipedia.org/wiki/RPC
  • 72. http://java.sun.com/javaee/technologies/
  • 73. http://en.wikipedia.org/wiki/Plain_Old_Java_Object
  • 74. http://sbtourist.blogspot.com/2009/01/jax-rs-and-hateoas.html</li></li></ul><li>Q&A<br />Domande?<br />
  • 75. Ringraziamenti<br />Grazie a tutti<br />

×