lab #2: web api programming exercises by j. h. wang dec. 19, 2011

17
Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Upload: magdalene-eaton

Post on 21-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Lab #2: Web API Programming Exercises

By J. H. WangDec. 19, 2011

Page 2: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Outline

• Yahoo! Term Extraction API• Bing Search API• Others

Page 3: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Platform and compiler

• (The same as networking programming in any language on any platform.)

Page 4: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Web API programming exercises 1. Network programming• Sending a request packet• Parsing the response from Web server

2. To start programming with Web API– Document:

e.g. http://tw.developer.yahoo.com/cas/– Register an API key– Start using the API

3. Protocol and message format– Prepare parameters in request– Parsing responses

Page 5: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Network Programming

• Sending an HTTP packet• Parsing the HTTP responses

Page 6: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Yahoo Term Extraction API

• Document: http://tw.developer.yahoo.com/cas/– Register an API key– Start using the API– Request method: HTTP POST– Response format: JSON, XML

Page 7: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Yahoo!搜尋『斷章取義』 API

• http://asia.search.yahooapis.com/cas/v1/[APIMethod] – API Method:• ws: (word segmentation)• ke: (keyword extraction)

– appid=<AppID>– content=<text content> (encoded in UTF-8)– format=json (or xml)

Page 8: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

HTTP POST

• E.g.: http://asia.search.yahooapis.com/cas/v1/ke?appid=<ID>&format=xml&content=<content>

• POST /cas/v1/ke HTTP/1.1\r\nHost: asia.search.yahooapis.com\r\nContent-Length: <len>\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\nappid=<ID>&format=xml&content=<content>

Page 9: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Yahoo Term Extraction Web Service

• http://developer.yahoo.com/search/content/V1/termExtraction.html

• Sample request:– http://search.yahooapis.com/ContentAnalysisService/V1/

termExtraction– appid: YahooDemo– context: Italian sculptors and painters of the renaissance

favored the Virgin Mary for inspiration.– query: madonna

Page 10: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

• Sample response– <ResultSet xmlns:xsi="http://www.w3.org/2001/

XMLSchema-instance" xmlns="urn:yahoo:cate" xsi:schemaLocation="urn:yahoo:cate http://search.yahooapis.com/ContentAnalysisService/V1/TermExtractionResponse.xsd"> <Result>italian sculptors</Result> <Result>virgin mary</Result> <Result>painters</Result> <Result>renaissance</Result> <Result>inspiration</Result> </ResultSet>

Page 11: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Parsing JSON Output

• Document: http://www.json.org/• Implementations– JSON parser in C, C++, Java, Perl, PHP, Python, …– Ex.• JSON_checker, and JSON_parser in C

Page 12: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Bing Search API

• Document: http://msdn.microsoft.com/en-us/library/dd251056.aspx – Search: Web, images, news, video, …– Register an API key– Start using the API– Request method: HTTP GET– Response format: JSON, XML, SOAP

Page 13: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Bing Web Search

• Example in Web search– Sample request:– http://api.bing.net/json.aspx– AppId= <AppID>– Sources=Web – Query=msdn blogs

Page 14: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

HTTP GET

• E.g.: http://api.bing.net/json.aspx?AppId= <AppID>&Sources=Web&Query=<query>

• GET /json.aspx?AppId= <AppID>&Sources=Web&Query=<query> HTTP/1.1\r\nConnection: close\r\nHost: api.bing.net\r\n\r\n

Page 15: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Request Example

• http://api.bing.net/json.aspx?AppId=Insert your AppId here&Query=msdn blogs&Sources=Web&Version=2.0&Market=en-us&Adult=Moderate&Options=EnableHighlighting&Web.Count=10&Web.Offset=0&Web.Options=DisableHostCollapsing+DisableQueryAlterations&JsonType=callback&JsonCallback=SearchCompleted

Page 16: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Response Example• { "SearchResponse":{ "Version":"2.0", "Query":{ "SearchTerms":"msdn

blogs" }, "Web":{ "Total":1490, "Offset":0, "Results":[ { "Title":"Monads", "Description":"Monad 1 2 Manifesto . Jeffrey P. Snover. Aug 8, 2002. Version 1.2. What is Monad? Monad is the next generation platform for administrative automation.", "Url":"http:\/\/blogs.msdn.com\/powershell\/attachment\/1910567.ashx", "DisplayUrl":"http:\/\/blogs.msdn.com\/powershell\/attachment\/1910567.ashx", "DateTime":"2008-10-29T05:27:14Z" }, …, { "Title":"Software Design Invitation Proposal Template for Imagine Cup", "Description":"SINGPAPORE SOFTWARE DESIGN INVITATIONAL SUBMISSION PROPOSAL TEMPLATE. NOTE: This section contains a template, not a fixed format. Please return soft copy only – hardcopies will not be ...", "Url":"http:\/\/blogs.msdn.com\/stanley\/attachment\/1610112.ashx", "DisplayUrl":"http:\/\/blogs.msdn.com\/stanley\/attachment\/1610112.ashx", "DateTime":"2008-10-23T18:13:07Z" } ] } }}

Page 17: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011

Thanks for Your Attention!