lab #2: web api programming exercises by j. h. wang dec. 19, 2011
TRANSCRIPT
![Page 1: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/2.jpg)
Outline
• Yahoo! Term Extraction API• Bing Search API• Others
![Page 3: Lab #2: Web API Programming Exercises By J. H. Wang Dec. 19, 2011](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/10.jpg)
• 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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.us/reader035/viewer/2022081908/5697bfbf1a28abf838ca3509/html5/thumbnails/17.jpg)
Thanks for Your Attention!