The document discusses the benefits of using RESTful principles and hypermedia when integrating web services and applications. It provides examples of how REST allows services to evolve independently through use of hyperlinks and standard HTTP methods. This reduces tight coupling between services and enables features like payment providers being changed without affecting clients.
1 of 64
Download to read offline
More Related Content
LT 08 - Guilherme Silveira - Cache hipermidia
1. Rest in Practice:
Hypermedia and Services
Guilherme Silveira
Wednesday, June 8, 2011
39. resttrips.com: sharing a trip
flight = 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 web
flight = Client.at('http://resttrips.com/f/574XR4').get();
confirmation = flight.getLink("payment").
patch(cardInformation, value/2);
Wednesday, June 8, 2011
40. resttrips.com: sharing a trip
flight = 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 web
flight = Client.at('http://resttrips.com/f/574XR4').get();
confirmation = flight.getLink("payment").
patch(cardInformation, value/2);
Wednesday, June 8, 2011
41. resttrips.com: sharing a trip
flight = 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 web
flight = Client.at('http://resttrips.com/f/574XR4').get();
confirmation = flight.getLink("payment").
patch(cardInformation, value/2);
Wednesday, June 8, 2011
42. calendar: integrating my systems
myself = Client.at('http://users.calendar.com')
.with(auth).get();
myself.link("calendar").patch(flight.link("self"));
Wednesday, June 8, 2011
43. calendar: integrating my systems
myself = Client.at('http://users.calendar.com')
.with(auth).get();
myself.link("calendar").patch(flight.link("self"));
Wednesday, June 8, 2011
44. calendar: more examples
me.link("calendar").patch(link_to_birthday_list)
me.link("calendar").patch(link_to_hotel_reservation)
me.link("calendar").patch(link_to_trip_details)
Wednesday, June 8, 2011
46. Any update on the flight ==> reflects here
Any update on the hotel ==> reflects here
Any update on the meeting ==> reflects here
so what?
Wednesday, June 8, 2011
47. Any update on the flight ==> reflects here
Any update on the hotel ==> reflects here
Any update on the meeting ==> reflects here
at e!
te gr
e, in
st us so what?
’t j u
don
Wednesday, June 8, 2011
48. so what? that was just keeping an URI.
Wednesday, June 8, 2011
49. so what? that was just keeping an URI.
Remove ==> Cancels the flight
Remove ==> Cancels the reservation
Remove ==> Emails your coworkers
Wednesday, June 8, 2011
50. so what? that was just keeping an URI.
rol!
cont
ali ze
en tr
notc
o
dRemove==> Cancels the flight
Remove ==> Cancels the reservation
Remove ==> Emails your coworkers
Wednesday, June 8, 2011
51. does our ‘rest’
systems built in
2010
work this way?
Wednesday, June 8, 2011
52. so what? that was just keeping an URI.
Remove ==> Cancels the flight
Remove ==> Cancels the reservation
Remove ==> Emails your coworkers
Wednesday, June 8, 2011
53. so what? that was just keeping an URI.
at?
or m
h f
h ic
bu tw
Remove ==> Cancels the flight
Remove ==> Cancels the reservation
Remove ==> Emails your coworkers
Wednesday, June 8, 2011
54. #json, #xml,
#soap #etc?
Wednesday, June 8, 2011