Editing Community Data Science Workshops (Spring 2014)/Saturday May 3rd lecture

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
{{CDSW_Moved}}
 
 
== Lecture Outline ==
 
== Lecture Outline ==
  
# Introduction to APIs
+
# API
 
#* definition of API: just an interface for programs
 
#* definition of API: just an interface for programs
 
#* definition of web API
 
#* definition of web API
Line 15: Line 14:
 
#** the ability to understand (i.e., parse) JSON data that APIs usually give us
 
#** the ability to understand (i.e., parse) JSON data that APIs usually give us
 
# Review material from last session
 
# Review material from last session
#* variables
+
#* variables, different types
 +
#* printing
 +
#* if statements
 
#* lists
 
#* lists
 
#* dictionaries
 
#* dictionaries
#* if statements
 
 
#* for loops
 
#* for loops
#* printing
 
 
#* modules
 
#* modules
 +
#* example python program
 
# New programming concepts:
 
# New programming concepts:
 
#* urllib2 and urlopen
 
#* urllib2 and urlopen
 
#* interpolate variables into a string using % and %()s
 
#* interpolate variables into a string using % and %()s
#* open files and write to them
 
 
# [http://placekitten.com/ placekitten.com]
 
# [http://placekitten.com/ placekitten.com]
 
#* API that takes specially crafted URLs and gives appropriately sized picture of kittens
 
#* API that takes specially crafted URLs and gives appropriately sized picture of kittens
Line 35: Line 34:
 
#* write a small program to grab arbitrary square from placekitten by asking for the size on standard in
 
#* write a small program to grab arbitrary square from placekitten by asking for the size on standard in
 
# JSON file (JavaScript Object Notation)
 
# JSON file (JavaScript Object Notation)
#* what is json: useful for more structure data
+
#* what is json
 
#* import json; json.loads()
 
#* import json; json.loads()
 
#* like Python (except no single quotes)
 
#* like Python (except no single quotes)
Line 42: Line 41:
 
#* Example file at http://mako.cc/cdsw.json
 
#* Example file at http://mako.cc/cdsw.json
 
#* download it and parse it
 
#* download it and parse it
 +
# Wikipedia API
 +
#* explain MediaWiki, exists on other wikis
 +
#* navigate to [http://en.wikipedia.org/w/api.php api page] and show the documentation, point out examples
 +
#* looking at the images within a page http://en.wikipedia.org/w/api.php?action=query&titles=Seattle&prop=images&imlimit=20&format=jsonfm
 +
#* looking at within two pages http://en.wikipedia.org/w/api.php?action=query&titles=Seattle|Bellevue,_Washington&prop=images&imlimit=50&format=jsonfm
 +
#* edit count http://en.wikipedia.org/w/api.php?action=query&list=users&ususers=Benjamin_Mako_Hill|Jtmorgan|Sj|Mindspillage&usprop=editcount&format=jsonfm
 +
#* give me the content of the main page http://en.wikipedia.org/w/api.php?format=json&action=query&titles=Main%20Page&prop=revisions&rvprop=content
 
# Other APIs
 
# Other APIs
 
#* every API is different, so read the documentation!
 
#* every API is different, so read the documentation!
#* for popular APIs, there are python modules that help you make requests and parse json!
 
 
#* rate limiting
 
#* rate limiting
 
#* authenticaiton
 
#* authenticaiton
 
#* text encoding issues
 
#* text encoding issues

Please note that all contributions to OpenHatch wiki are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) (see OpenHatch wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)

Templates used on this page: