REST: Hypermidia e Cache - DNAD 2011

1,192 views

Published on

Apresentação feita no dnad 2011 por Guilherme Silveira da Caelum.

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

No Downloads
Views
Total views
1,192
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
16
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • REST: Hypermidia e Cache - DNAD 2011

    1. 1. Rest in Practice:Hypermedia e Cache Guilherme Silveira @guilhermecaelum
    2. 2. Guilherme Silveira
    3. 3. 11 years, 1992: “Basic”
    4. 4. 2002 guj.com.br 2003 vraptor
    5. 5. 2004 extreme programming 2006 scrum ...
    6. 6. 2009 restfuliehttp://restfulie.caelumobjects.com/
    7. 7. 2010 tecturahttp://www.tectura.com.br
    8. 8. 2004 caelum - daily life www.caelum.com.br
    9. 9. blogs blog.caelum.com.bragilenomundoreal.com.br blog.caelumobjects.com
    10. 10. bank.com
    11. 11. bank.com calendar.com
    12. 12. bank.com calendar.comtravel.com
    13. 13. bank.com calendar.comtravel.com company.com
    14. 14. bank.com calendar.comtravel.com company.com
    15. 15. what is the future of integration over the web?
    16. 16. what was REST?
    17. 17. Restful Web Services
    18. 18. Restful Webcreate a saas account Services
    19. 19. Restful Webcreate a saas account freeze account Services
    20. 20. Restful Webcreate a saas account freeze account Services reactivate account
    21. 21. WebRestful Services
    22. 22. Web httpRestful Services
    23. 23. Web http port 80Restful Services
    24. 24. Web http port 80 firewall heavenRestful Services
    25. 25. Web ServicesRestful
    26. 26. Web Services xml, jsonRestful
    27. 27. Web Services xml, jsonRestful get, post, ...
    28. 28. DESAFIO 1
    29. 29. rest =web services
    30. 30. não
    31. 31. unresttrips.com: flight details<?xml version="1.0" encoding="UTF-8" standalum="yes"?><flight> <information> <from>sao paulo</from> <to>seoul</to> </information>  <value>900.00</value></flight>
    32. 32. service locator when integrating: coupling++ unrest pay unresttrips.com guilherme
    33. 33. service locator when integrating: coupling++ unrest pay unresttrips.com guilherme
    34. 34. resttrips.com: flight details<?xml version="1.0" encoding="UTF-8" standalum="yes"?><flight> <information> <from>sao paulo</from> <to>seoul</to> </information>  <value>900.00</value> <link rel="payment" href="http://resttrips.com/payment/custom"/</flight>
    35. 35. resttrips.com: making the paymentflight = Client.at(http://resttrips.com/f/574XR4).get();confirmation = flight.getLink("payment"). patch(cardInformation, value);
    36. 36. resttrips.com: changing its payment provider<?xml version="1.0" encoding="UTF-8" standalum="yes"?><flight> <information> <from>sao paulo</from> <to>seoul</to> </information>  <value>900.00</value> <link rel="payment" href="http://paysite.com/custom"/></flight>
    37. 37. dependency injection when integrating: coupling-- restrips pay resttrips.com guilherme paysite.com
    38. 38. dependency injection when integrating: coupling-- restrips pay resttrips.com guilherme paysite.com
    39. 39. DESAFIO 2
    40. 40. adicione 1 link
    41. 41. mas
    42. 42. eu não viajo sozinho
    43. 43. meu amigo sergio
    44. 44. resttrips.com: sharing a tripflight = Client.at(http://resttrips.com/f/574XR4).get();confirmation = flight.getLink("payment"). patch(cardInformation, value/2);// send the payment link to another part of the webflight = Client.at(http://resttrips.com/f/574XR4).get();confirmation = flight.getLink("payment"). patch(cardInformation, value/2);
    45. 45. resttrips.com: sharing a tripflight = Client.at(http://resttrips.com/f/574XR4).get();confirmation = flight.getLink("payment"). patch(cardInformation, value/2);// send the payment link to another part of the webflight = Client.at(http://resttrips.com/f/574XR4).get();confirmation = flight.getLink("payment"). patch(cardInformation, value/2);
    46. 46. resttrips.com: sharing a tripflight = Client.at(http://resttrips.com/f/574XR4).get();confirmation = flight.getLink("payment"). patch(cardInformation, value/2);// send the payment link to another part of the webflight = Client.at(http://resttrips.com/f/574XR4).get();confirmation = flight.getLink("payment"). patch(cardInformation, value/2);
    47. 47. calendar: integrating my systemsmyself = Client.at(http://users.calendar.com) .with(auth).get();myself.link("calendar").patch(flight.link("self"));
    48. 48. calendar: integrating my systemsmyself = Client.at(http://users.calendar.com) .with(auth).get();myself.link("calendar").patch(flight.link("self"));
    49. 49. calendar: more examplesme.link("calendar").patch(link_to_birthday_list)me.link("calendar").patch(link_to_hotel_reservation)me.link("calendar").patch(link_to_trip_details)
    50. 50. so what?
    51. 51. Any update on the flight ==> reflects hereAny update on the hotel ==> reflects hereAny update on the meeting ==> reflects here so what?
    52. 52. DESAFIO 3
    53. 53. DESAFIO 3 e 4
    54. 54. Any update on the flight ==> reflects hereAny update on the hotel ==> reflects hereAny update on the meeting ==> reflects here so what?
    55. 55. Any update on the flight ==> reflects here ! Any update on the hotel ==> reflects here te Any update on the meeting ==> reflects here g ra in t e s e , st u ’t ju so what?d o n
    56. 56. Remove ==> Cancels the flightRemove ==> Cancels the reservationRemove ==> Emails your coworkers so what?
    57. 57. Remove ==> Cancels the flight l! Remove ==> Cancels the reservation ro Remove ==> Emails your coworkers t co n l iz e tr a ce n o n’t so what?d
    58. 58. so what? that was just keeping an URI. ro l! co nt a li ze en tr no tc o dRemove ==> Cancels the flight Remove ==> Cancels the reservation Remove ==> Emails your coworkers
    59. 59. DESAFIO 5
    60. 60. nosso sistema‘rest’ funciona assim?
    61. 61. misc
    62. 62. #json, #xml,#soap #etc?
    63. 63. which #json, #xml #etc?
    64. 64. micro formatos
    65. 65. atom
    66. 66. calendars
    67. 67. must ignore
    68. 68. integration over the web
    69. 69. integration over the web
    70. 70. cache
    71. 71. mov 2011 RELATÓRIO detalhesmov 2011 detalhesmov 2011 detalhes
    72. 72. mov 2010 RELATÓRIO detalhesmov 2010 detalhesmov 2010 detalhes
    73. 73. pagine!
    74. 74. pagine!mov 2011mov 2011mov 2010pagina 1
    75. 75. pagine!mov 2011mov 2011 mov 2010mov 2010 mov 2010pagina 1 pagina 2
    76. 76. pagine! A! AC Cmov 2011mov 2011 mov 2010mov 2010 mov 2010pagina 1 pagina 2
    77. 77. pagine!
    78. 78. pagine!mov 2011mov 2011pagina 1
    79. 79. pagine! mov 2010mov 2011 mov 2010mov 2011 mov 2010pagina 1 pagina ano anterior
    80. 80. pagine! t u ! u n iB mov 2010 mov 2011 mov 2010 mov 2011 mov 2010 pagina 1 pagina ano anterior
    81. 81. quebre! mov 2010 mov 2010 mov 2010 mov 2010
    82. 82. quebre! mov 2010 detalhes mov 2010 mov 2010 mov 2010
    83. 83. quebre! LINK!!! mov 2010 detalhes mov 2010 mov 2010 mov 2010
    84. 84. quebre! Q ? ? P LINK!!! mov 2010 K detalhes I N mov 2010L mov 2010 mov 2010
    85. 85. quebre! O R N E T E H ELINK!!! mov 2010 detalhes ACC mov 2010 mov 2010 mov 2010
    86. 86. quebre! O R N E T E H ELINK!!! mov 2010 detalhes ACC mov 2010 mov 2010 mov 2010
    87. 87. quebre! O R Nwho E T E H wanELINK!!! mov 2010 detalhes C ts AoC f to mov 2010 rev live er? mov 2010 mov 2010
    88. 88. UM LINK POR VERSÃO
    89. 89. cachenão pode cachear?acredite. você pode! cacheie
    90. 90. bottom up design by committe mime type? microformat controlled vocabulary
    91. 91. hypermedia integration over the web
    92. 92. hypermedia R E E B Q U integration over the web
    93. 93. LIN REhypermedia E KEB Q U integration over the web
    94. 94. LIN RIEhypermedia E E E K CEHB Q C U A integration over the web
    95. 95. @guilhermecaelumhttp://www.caelum.com.brobrigado

    ×