The Internet as Web Services: introduction to ReST
Oscar Zambotti is a student of Information Technology at the Faculty of Science, University of Trento. He attended the 9-m...
<ul><li>What is a Web Service?
Different ways: SOAP and ReST
Examples: Twitter and Flickr
How am I going to use ReST? </li></ul>What am I going to talk about? “ The Internet as Web Services: introduction to ReST”...
1.  What is a Web Service?
“ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 “ The challenge now is to join forces to rese...
“ A  Web Service  (WS) is a software system designed to support  interoperable machine-to-machine  interaction over a netw...
Languages limitations?
Access limitations? </li></ul>What is a web service? “ The Internet as Web Services: introduction to ReST” – Oscar Zambott...
Use of web services? E.g. Flickrvision “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Flickr...
A  mashup  is a Web application that combines  data  or  functionality  from one or more sources into a single integrated ...
“ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 ProgrammableWeb statistics 1308 APIs 3957 Mas...
2.  Different ways: SOAP and ReST
SOAP  ( Simple Object Access Protocol ) uses  XML  and  RPC  or  HTTP . Businesses can register their WS on  UDDI ( Univer...
<soapenv:Envelope   xmlns:soapenv=&quot; http://schemas.xmlsoap.org/soap/envelope/ &quot;   xmlns:xsd=&quot; http://www.w3...
<soapenv:Envelope   xmlns:soapenv=&quot; http://schemas.xmlsoap.org/soap/envelope/ &quot;   xmlns:wsa=&quot; http://schema...
ReST  ( Representational State Transfer ) is an architectural style for distributed hypermedia systems, it is not just a m...
HTTP consists in URIs, methods, status codes... The most important HTTP methods compose the basic functions in computer sc...
http://example.com/losties How to use a web service: ReST /3 “ The Internet as Web Services: introduction to ReST” – Oscar...
An application is  ReSTful  when has resources accessible by representations. http://example.com/losties/4815162342 Some s...
A large number of developers chooses ReST instead of SOAP. “ The Internet as Web Services: introduction to ReST” – Oscar Z...
3.  ReST examples (Python code)
What is Twitter? Example: Twitter “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
Twitter REST API Method: statuses/show Returns a single status, specified by the id parameter below.  The status's author ...
import httplib # some code... def fetch_following(self):   conn = httplib.HTTPConnection(&quot;twitter.com&quot;)   conn.r...
What is Flickr? Screenshot Example: Flickr “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
Developers need a couple of keys to use the APIs. Some methods require authentication. Example: Flickr /2 “ The Internet a...
REST Request Format REST is the simplest request format to use - it's a simple HTTP GET or POST action. The REST Endpoint ...
import urllib, urllib2, json FRI = &quot; http://api.flickr.com/services/rest/ ?&quot; KEY = &quot;d00fa386476950f75555555...
Upcoming SlideShare
Loading in …5
×

The Internet as Web Services: introduction to ReST

4,834 views

Published on

The Internet is full of Web Services, everyday more and more. Some services offer API (application programming interface) that developers use to build new applications (mash-ups). One of the most known and used technology for the machine-to-machine communication is SOAP (Simple Object Access Protocol) but in the last years we can use another paradigm, ReST (Representational State Transfer). How does it work?

Published in: Technology
  • Pemerhatian yang jelas dan pembentangan yang menarik melalui contoh yang bertepatan. Saya berminat untuk embed ke dalam website saya, iaitu www.ringtonesz.org/ dan www.lyrics-search.org/

    Ahmad Said.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

The Internet as Web Services: introduction to ReST

  1. 1. The Internet as Web Services: introduction to ReST
  2. 2. Oscar Zambotti is a student of Information Technology at the Faculty of Science, University of Trento. He attended the 9-months course &quot;ICT secure programming expert&quot; in Bozen offered by the European Social Fund. Now he's in FBK for his stage period in the SoNet Group and following the “ Presentation or die ” motto is giving this presentation in the very beginning of his stage. Oscar is very interested in social networking and programming applications about it. He is also a speaker and DJ in a local radio station. http://www.oskarnrk.net [email_address] Bio “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
  3. 3. <ul><li>What is a Web Service?
  4. 4. Different ways: SOAP and ReST
  5. 5. Examples: Twitter and Flickr
  6. 6. How am I going to use ReST? </li></ul>What am I going to talk about? “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
  7. 7. 1. What is a Web Service?
  8. 8. “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 “ The challenge now is to join forces to research on Software & Services Technologies, to bring advances to the market and to ensure European leadership in the new Internet economy: The Internet of Services.” Internet of Services, Software and Virtualisation - Objective ICT 2009.1.2, Call 5 of the Seventh Framework Programme (2007-2013) European Commission - Information Society and Media “ The Internet has shown remarkable resilience and flexibility in the face of ever increasing numbers of users, data volume, and changing usage patterns, but faces growing challenges in meetings the needs of our knowledge society. This is the moment to start designing the Internet of the Future.” Future Internet - Research programs of the CIT (Center for Innovation Technology) Fondazione Bruno Kessler The vision of the “Future Internet”
  9. 9. “ A Web Service (WS) is a software system designed to support interoperable machine-to-machine interaction over a network.” - W3C Glossary Usually a WS provides the API ( Application Programming Interface ). <ul><li>Hardware limitations?
  10. 10. Languages limitations?
  11. 11. Access limitations? </li></ul>What is a web service? “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
  12. 12. Use of web services? E.g. Flickrvision “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Flickr photos with Google Maps
  13. 13. A mashup is a Web application that combines data or functionality from one or more sources into a single integrated application. http://www.programmableweb.com “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Web services for mashups
  14. 14. “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 ProgrammableWeb statistics 1308 APIs 3957 Mashups (12 May 2009) The trend...
  15. 15. 2. Different ways: SOAP and ReST
  16. 16. SOAP ( Simple Object Access Protocol ) uses XML and RPC or HTTP . Businesses can register their WS on UDDI ( Universal Description, Discovery and Integration ) and provide documentation with WSDL ( Web Services Description Language ) “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 image: Wikipedia How to use a web service: SOAP image: Wikipedia
  17. 17. <soapenv:Envelope xmlns:soapenv=&quot; http://schemas.xmlsoap.org/soap/envelope/ &quot; xmlns:xsd=&quot; http://www.w3.org/2001/XMLSchema &quot; xmlns:xsi=&quot; http://www.w3.org/2001/XMLSchema-instance &quot;> <soapenv:Body> <req:echo xmlns:req=&quot; http://localhost:8080/axis2/services/MyService/ &quot;> <req:category>classifieds</req:category> </req:echo> </soapenv:Body> </soapenv:Envelope> “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 How to use a web service: SOAP /2 Sample: Request...
  18. 18. <soapenv:Envelope xmlns:soapenv=&quot; http://schemas.xmlsoap.org/soap/envelope/ &quot; xmlns:wsa=&quot; http://schemas.xmlsoap.org/ws/2004/08/addressing &quot;> <soapenv:Header> <wsa:ReplyTo> <wsa:Address> http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous </wsa:Address> </wsa:ReplyTo> <wsa:From> <wsa:Address> http://localhost:8080/axis2/services/MyService </wsa:Address> </wsa:From> <wsa:MessageID> ECE5B3F187F29D28BC11433905662036 </wsa:MessageID> </soapenv:Header> <soapenv:Body> <req:echo xmlns:req=&quot; http://localhost:8080/axis2/services/MyService/ &quot;> <req:category>classifieds</req:category> </req:echo> </soapenv:Body> </soapenv:Envelope> “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 How to use a web service: SOAP /3 ...Response
  19. 19. ReST ( Representational State Transfer ) is an architectural style for distributed hypermedia systems, it is not just a method for building web services. Introduced by Roy Thomas Fielding in his dissertation to become Ph.D. in 2000. Resource -> URI Interaction -> Representation An application can interact with a resource by knowing the identifier of the resource (URI), and the action required (HTTP methods). ReST is stateless . How to use a web service: ReST “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
  20. 20. HTTP consists in URIs, methods, status codes... The most important HTTP methods compose the basic functions in computer science: CRUD How to use a web service: ReST /2 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 HTTP CRUD SQL POST Create INSERT GET Read SELECT PUT Update UPDATE DELETE Delete DELETE
  21. 21. http://example.com/losties How to use a web service: ReST /3 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 POST - C reate - GET - R ead - PUT - U pdate - DELETE - D elete - Create a new passenger List http://example.com/losties/4815162342 Response format: HTML, XML (RSS, Atom, “custom”) , JSON, ... Suggested reading: “How I explained ReST to my wife” (Ryan Tomayko) POST - C reate - GET - R ead - PUT - U pdate - DELETE - D elete - Passenger data Update passenger data Delete passenger
  22. 22. An application is ReSTful when has resources accessible by representations. http://example.com/losties/4815162342 Some services are ReST-like : you use HTTP methods but using APIs methods as parameters (Flickr). http://example.com/losties/getLostie?id=4815162342 Nouns vs Verbs How to use a web service: ReST /4 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
  23. 23. A large number of developers chooses ReST instead of SOAP. “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 SOAP vs. ReST on ProgrammableWeb
  24. 24. 3. ReST examples (Python code)
  25. 25. What is Twitter? Example: Twitter “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
  26. 26. Twitter REST API Method: statuses/show Returns a single status, specified by the id parameter below. The status's author will be returned inline. URL: http://twitter.com/statuses/show/id.format Formats: xml, json, rss, atom HTTP Method(s): GET Requires Authentication: false, unless the author of the status is protected Example: Twitter /2 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Twitter REST API Method: statuses/update Updates the authenticating user's status. Requires the status parameter specified below. Request must be a POST. A status update with text identical to the authenticating user's current status will be ignored to prevent duplicates. URL: http://twitter.com/statuses/update.format Formats: xml, json, rss, atom HTTP Method(s): POST Requires Authentication: true http://apiwiki.twitter.com/Twitter-API-Documentation Some methods require authentication (OAuth)
  27. 27. import httplib # some code... def fetch_following(self): conn = httplib.HTTPConnection(&quot;twitter.com&quot;) conn.request(&quot;GET&quot;,&quot;/friends/ids/&quot;+self.screen_name+&quot;.json&quot;) r1 = conn.getresponse() print r1.read() conn.close() Example: Twitter /3 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Output (sample!): user IDs [5428712,31528501,6603122,30304051,30303627,5159271, 17572031,15147484] Obj: fetch the list of the user IDs that a user is following
  28. 28. What is Flickr? Screenshot Example: Flickr “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
  29. 29. Developers need a couple of keys to use the APIs. Some methods require authentication. Example: Flickr /2 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
  30. 30. REST Request Format REST is the simplest request format to use - it's a simple HTTP GET or POST action. The REST Endpoint URL is http://api.flickr.com/services/rest/ To request the flickr.test.echo service, invoke like this: http://api.flickr.com/services/rest/?method=flickr.test.echo&name=value By default, REST requests will send a REST response. Example: Flickr /3 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 http://www.flickr.com/services/api/ Some methods require authentication.
  31. 31. import urllib, urllib2, json FRI = &quot; http://api.flickr.com/services/rest/ ?&quot; KEY = &quot;d00fa386476950f75555555555555555&quot; SECRET = &quot;cac879e555555555&quot; FORMAT = &quot;json&quot; # some code... def people_find_by_username(username): # some code... def contacts_get_public_list(username): nsid = people_find_by_username(username) req = {'method': CONTACTS_GETPUBLICLIST, 'api_key': KEY, 'user_id': nsid, 'format': FORMAT, 'nojsoncallback': 1} params = urllib.urlencode(req) contacts_public_list = urllib2.urlopen(FRI,params).read() print contacts_public_list Example: Flickr /4 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 HTTP POST (implicit) Obj: fetch the list of the friends a user
  32. 32. Example: Flickr /5 “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 Output (sample!): collection (dictionaries, lists) {&quot;contacts&quot;: {&quot;page&quot;:1, &quot;pages&quot;:1, &quot;per_page&quot;:1000, &quot;perpage&quot;:1000, &quot;total&quot;:39, &quot;contact&quot;: [{&quot;nsid&quot;:&quot;81107858@N00&quot;, &quot;username&quot;:&quot;Jack&quot;, &quot;iconserver&quot;:&quot;207&quot;, &quot;iconfarm&quot;:1, &quot;ignored&quot;:0}, {&quot;nsid&quot;:&quot;23578585@N00&quot;, &quot;username&quot;:&quot;Locke&quot;, &quot;iconserver&quot;:&quot;211&quot;, &quot;iconfarm&quot;:1, &quot;ignored&quot;:0}, {&quot;nsid&quot;:&quot;81158128@N00&quot;, &quot;username&quot;:&quot;Sawyer&quot;, &quot;iconserver&quot;:&quot;147&quot;, &quot;iconfarm&quot;:1, &quot;ignored&quot;:0}, {&quot;nsid&quot;:&quot;29563291@N00&quot;, &quot;username&quot;:&quot;Hurley&quot;, &quot;iconserver&quot;:&quot;182&quot;, &quot;iconfarm&quot;:1, &quot;ignored&quot;:0}, {&quot;nsid&quot;:&quot;20347812@N00&quot;, &quot;username&quot;:&quot;Kate&quot;, &quot;iconserver&quot;:&quot;113&quot;, &quot;iconfarm&quot;:1, &quot;ignored&quot;:0}]}, &quot;stat&quot;:&quot;ok&quot;}
  33. 33. 4. How am I going to use ReST?
  34. 34. Web-based tool, with prepopulation using Web APIs, that displays the network of a user and its evolution over some social networks before and after a defined event . What am I going to do? Socialdash “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009
  35. 35. Questions? Ideas? Suggestions? Thanks “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009 http://sonet.fbk.eu
  36. 36. <ul><li>European Commission: Seventh Framework Programme http://cordis.europa.eu/fp7 http://cordis.europa.eu/fp7/ict/programme/challenge1_en.html
  37. 37. Strategic guidelines in FBK: the Future Internet http://cit.fbk.eu/future_internet
  38. 38. W3C Glossary http://www.w3.org/TR/ws-gloss/
  39. 39. Representational State Transfer (ReST) by Roy Thomas Fielding http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm http://www.ics.uci.edu/~fielding/
  40. 40. Suggested readings: http://tomayko.com/writings/rest-to-my-wife </li></ul>Bibliography “ The Internet as Web Services: introduction to ReST” – Oscar Zambotti, 2009

×