introduction to web apis and protocols by j. h. wang dec. 12, 2011

Post on 13-Jan-2016

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction to Web APIs and Protocols

By J. H. WangDec. 12, 2011

Outline

• Popular Web APIs– Google APIs– Yahoo! APIs– Bing API– Others

• Protocols in Web APIs– HTTP– HTML– JSON– XML

Google APIs

• Google APIs (http://code.google.com/intl/zh-TW/more/ )– AJAX APIs (deprecated)

• AJAX Search: Blog, Book, News, Web, Image, Video

– Custom Search API– Maps API– Google Code Playground

• http://code.google.com/apis/ajax/playground/

• Others:– Google Chart API (Visualization API), Desktop API, Calendar

API, Contacts API, Picasa API, Social Graph API, Earth API, GeoCoding API, Prediction API, URL Shortener API, YouTube API

– Google Data API• Book Data, Calendar Data, Contacts Data, Web Albums Data,

Spreadsheets Data, YouTube Data, …– University Research Program for Google Search and

Translate (not accepting new applications)– Google API consoles: translate API, prediction API, custom

search API• Check more at: Google Code and Google Labs (more

information in English version)

Yahoo! APIs

• Yahoo! APIs (http://developer.yahoo.com/)• Search

– BOSS (Build your Own Search Service) (not free!)• Web, image, news, blogs (beta)

– SearchMonkey: to enhance search results (shut down in Oct. 2010)

– Search Marketing• Location

– Local, Maps– PlaceFinder, PlaceMaker– Traffic, Weather

• Others– Yahoo Social APIs: social directory, contacts, user status,

updates– Media: Flickr API, music, media player– GeoPlanet, Network Time, Term Extraction, Yahoo!

Answers – Taiwan ONLY: 生活 +, 地圖 , 知識 +, 斷章取義 , 無名小

站 , 奇摩拍賣• Check more at: Yahoo! Developer Network (YDN) (

http://developer.yahoo.com/ )

Bing APIs

• Bing API 2.0: (http://www.bing.com/toolbox/bingdeveloper/ )– Web, image, news, video search– Translation, spell, relatedsearch

• Bing Maps– AJAX control, iOS control, SOAP services, REST services

• Others– More information at: Bing Developer Center

Others

• Facebook API (https://developers.facebook.com/ )• micro-blogging

– Twitter API (https://dev.twitter.com/ )– plurk API (http://www.plurk.com/API )– Digg API (http://developers.digg.com/ )

• Technorati API: blog search (terminated in Oct. 2009!)

• MySpace API (http://developer.myspace.com/ )• Del.icio.us API (http://delicious.com/help/api )

– social bookmarks

• New York Times API (http://developer.nytimes.com )– Article search– Movie reviews– TimesTags– …

• Scopus API (http://searchapi.scopus.com/ )– search for papers, authors, affiliation, citations

• MediaWiki API• Ebay API

Mashups (Web Application Hybrid)

• Using and combing data, presentation, or functionality from two or more sources to create new services

• Using open APIs and data sources to produce enriched results

Some Example Mashups

• HousingMaps– http://www.housingmaps.com/

• ChicagoCrime– http://www.chicagocrime.org/

Example: Tourist Blog Information Integration System

System Architecture

Wordsegmentation

Wordsegmentation

YouTube

location

others

Resultpresentation

Resultpresentation

Google Maps

Tourist blogs

blogs

query

Panoramio

Wikipedia

Some Factors in Integrating Web APIs

• What service are you going to provide?– Location-based services: Geo & Local APIs– Data sources: Web, news, blog, or personal data?– Social relationships?– Visualization?

• Which platform?– Mobile devices– PCs

• Data quality?

Some Protocols in Web Services

• RESTful (REpresentational State Transfer)• SOAP (Simple Object Access Protocol)

– The standard, version 1.2

• HTTP • JSON (JavaScript Object Notation)• XML

SOAP vs. REST

• SOAP– Pros:

• Language, platform, and transport agnostic• Designed to handle distributed computing environments• The standard for Web services, and has better support from other

standards (WSDL, WS-*)• Built-in error-handling• Extensibility

– Cons:• Conceptually more difficult, more heavy-weight• More verbose• Harder to develop, requires tools

• REST– Pros:

• Language and platform agnostic• Much simpler to develop than SOAP• Small learning curve• Concise, no need for additional messaging layer• Closer in design and philosophy to the Web

– Cons:• Assumes a point-to-point communication model• Lack of standards support for security, policy, reliable messaging• Tied to the HTTP transport

HTTP

• HyperText Transfer Protocol– The protocol standard for the World Wide Web– Defined by IETF, W3C– RFC 2616, HTTP 1.1

• Overview– Web browser (the HTTP client) submits an HTTP

request to the HTTP server, which provides resources (such as HTML files) and returns a response

HTTP Request Message

• Request line: – GET /images/logo.png HTTP/1.1

• Headers – Accept-Language: en

• Empty line• (Each line must end with <CR><LF>)• Optional message body

Request Methods

• 9 methods indicating the action to be performed on the identified resource– GET– POST– PUT– DELETE– HEAD, TRACE, OPTIONS, CONNECT, PATCH

Some HTTP Header Fields• Requests

– Accept-Charset– Connection– Content-Type– Content-Length– Date– From – Host

• Responses– Connection– Content-Type– Content-Length– Date

Response Message

• Status line– Status codes

• 404– Reason phrase

• Not found

• Types of status codes– 1xx informational– 2xx success– 3xx redirection– 4xx client error– 5xx server error

Example HTTP Session• Client request

– GET /index.html HTTP/1.1<CR><LF>– Host: www.example.com<CR><LF>– <CR><LF>

• Server response– HTTP/1.1 200 OK– Date: Mon, 23 May 2005 22:38:34 GMT– Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)– Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT– Etag: “3f80f-1b6-3e1cb03b”– Accept-Ranges: bytes– Content-Length: 438– Connection: close– Content-Type: text/html; charset=UTF-8

HTML

• HyperText Markup Language: the language for Web pages– HTML 4.01 (W3C recommendation, 1999)– HTML 5 (W3C working draft, May 2011)

• Elements– Tags: <xxx> … </xxx> – Attributes – Ex: headings, paragraphs, tables, forms,

comments, …

An Example HTML File

• <html> <head> <title>Hello HTML</title> </head> <body> <p>Hello World!</p> </body> </html>

JSON

• JavaScript Object Notation (JSON): a lightweight data-interchange format (http://www.json.org/ )– Easy for humans to read and write– Easy for machines to parse and generate– Based on a subset of JavaScript Programming Language,

but it’s completely language independent• JSON is built on two structures

– Name/value pairs: objects– Ordered list of values: arrays

• More details in RFC 4627

JSON Examples

• { "Image": { "Width": 800, "Height": 600, "Title": "View from 15th Floor", "Thumbnail": {"Url":"http://www.example.com/image/481989943", "Height": 125, "Width": "100" }, "IDs": [116, 943, 234, 38793] } }

JSON Examples

• [ { "precision": "zip", "Latitude": 37.7668, "Longitude": -122.3959, "Address": "", "City": "SAN FRANCISCO", "State": "CA", "Zip": "94107", "Country": "US" }, { "precision": "zip", "Latitude": 37.371991, "Longitude": -122.026020, "Address": "", "City": "SUNNYVALE", "State": "CA", "Zip": "94085", "Country": "US" } ]

XML

• eXtensible Markup Language: a set of rules for encoding documents in machine-readable form– XML 1.0 (W3C Recommendation)– An application profile of SGML (ISO 8879)

An Example XML File

• <?xml version="1.0"?><note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body></note>

Thanks for Your Attention!

top related