Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How the Web Works: Lecture 8
Search
Abhinav Sharma
January 09, 2014
Education
0
110
How the Web Works: Lecture 8
This talk was designed for a class (98-135) taught at Carnegie Mellon University in Spring 2010.
Abhinav Sharma
January 09, 2014
Tweet
Share
More Decks by Abhinav Sharma
See All by Abhinav Sharma
How the Web Works: Lecture 5
abhinavsharma
1
70
How the Web Works: Lecture 6
abhinavsharma
0
44
How the Web Works: Lecture 7
abhinavsharma
0
43
How the Web Works: Lecture 9
abhinavsharma
0
59
How the Web Works: Lecture 3
abhinavsharma
0
32
How the Web Works: Lecture 2
abhinavsharma
1
44
How the Web Works: Lecture 1
abhinavsharma
2
120
Other Decks in Education
See All in Education
小・中・高等学校における情報教育の体系的な学習を目指したカリキュラムモデル案/curriculum model
codeforeveryone
2
2.3k
Ch2_-_Partie_1.pdf
bernhardsvt
0
110
Introduction - Lecture 1 - Web Technologies (1019888BNR)
signer
PRO
0
4.9k
2409_CompanyInfo_Hanji_published.pdf
yosukemurata
0
380
JavaScript - Lecture 6 - Web Technologies (1019888BNR)
signer
PRO
0
2.5k
東工大 traP Kaggle班 機械学習講習会 2024
abap34
2
320
Web Application Frameworks - Lecture 4 - Web Technologies (1019888BNR)
signer
PRO
0
2.6k
ルクソールとツタンカーメン
masakamayama
1
870
老人会? いえ、技術継承です @ builderscon 2024 LT
s3i7h
0
110
HCI and Interaction Design - Lecture 2 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
820
オープンソース防災教育ARアプリの開発と地域防災での活用
nro2daisuke
0
170
勉強したらどうなるの?
mineo_matsuya
10
6.5k
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
243
12k
Designing for humans not robots
tammielis
250
25k
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
Adopting Sorbet at Scale
ufuk
73
9.1k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Ruby is Unlike a Banana
tanoku
97
11k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Six Lessons from altMBA
skipperchong
27
3.5k
For a Future-Friendly Web
brad_frost
175
9.4k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Transcript
None
Lecture 8 Building Social Apps
None
XML
XML HTML Generalized Format for structured data XML <=> DOM
Tree .xml Files XML Parsers out there... JSON : HashTable :: XML : Tree
<courses> <course> <id> <name> <desc> <prof> <course> <id> <name> <desc>
<prof>
Finally, we don’t need to talk pretty to the humans!
Yeah, screw NLP!
Haha, noobs!
None
API
APIs Application Programming Inteface Library of Functions ... for some
langauge Common Theme ex. Java Sound API
Facebook knows so much about my users. If only... We’ll
share it, after all, people will think we’re awesome!
Sweet! I code in PHP, Ruby, Python, Java, C, and
Brainf*ck STFU
Sweet! I code in PHP, Ruby, Python, Java, C, and
Brainf*ck Ok, we’ll give you a standard format.
API = HTTP + XML Returning Data (beyond HTML) Making
requests (beyond GET & POST)
REST made with love HTTP
REST Representational State Transfer Its not that fancy. Standard for
Communication Uses HTTP in depth With XML or JSON myhost.com/...
Public APIs
My
Videos Users leavebritneyalone Chris Crocker starwarskid Darth Vader icanhazcheezburger The
Cat icanhazmuffins The Cat
GET www.google.com 200 OK
GET www.google.com Hello, World!
Request GET POST Response 200 OK 404 Not Found 500
Internal Server Error ....
GET POST PUT DELETE
GET api.mytube.com 200 OK
GET api.mytube.com starwarskid leavebritneyalone ...
GET api.mytube.com/ starwarskid starwarskid.mp4
DELETE api.mytube.com/ starwarskid 200 OK
DELETE api.mytube.com/ terminator2 404 Not Found
RESTful Resource GET POST PUT DELETE api.mytube.com api.mytube.com/ vid_id List
Members Replace Collection Create New Item Delete Collection Retrieve Data Update Item Member is Collection Delete Item
REST APIs
Parse Response XML using PHP http://php.net/manual/en/book.xml.php Request Service using GET/POST/PUT/DELETE
http://us.php.net/manual/en/book.curl.php
I use PHP to respond to requests!
None
Hands-On http://phprestsql.sourceforge.net/ http://phprestsql.sourceforge.net/download.html
None
Wrappers aka Client Libraries
Wrappers import mytube.py mt = new MyTube(auth) mt.getVideos() mt.setVideo(vid, new.mp4)
My
Facebook API
Facebook Apps Is like a website Inside of Facebook Access
to Facebook Data friends, networks, about... Users “add” applications Not your domain name
Canvas URL apps.facebook.com/... Callback URL myhost.com/...
Let See One http://apps.facebook.com/iplcricket/
Lets Build One www.cmuwebworks.com/movies/facebook_app.mov
Hello++
myhost.com/... <fb:friends> <ol> <li>Friend1</li> <li>Friend2</li> <li>Friend3</li> </ol>
FBML Is an extension of SQL With special <fb:> tags
Invalid as HTML Facebook reparses Canvas-Callback Model myhost.com/...
JS & FQL Facebook restricts JS Called FBJS FQL is
SQL-like way to access data on Facebook More general than friends->get() myhost.com/...
Facebook Connect Your Website + Facebook Authentication Feed Social Graph
Implementation Details Later
http://wiki.developers.facebook.com
Other APIs
None
YouTube API Data API: Finds the right video Data API
is REST Based Player API: Customizable Player Player API is Flash Based
Data API Google Data API HTTP Request HTTP + XML
Response Similar to REST Java, PHP, Python, ObjC, Javascript Libraries http://code.google.com/apis/gdata/
Data API Search for Videos Standard Streams (Most Popular) Upload,
Update, Delete Videos
Player API Data API: Finds Video Player : Plays Video
Flash Player (.swf file) With Parameters player colors, loop video, etc....
http://code.google.com/apis/youtube/
None
Twitter API Two APIs (Oh Noes!) Historical Reasons REST API,
Search API Completely Open
Twitter API REST API Search API User information, social data,
etc... Search by tags, trends, etc...
http://apiwiki.twitter.com
Here’s What Matters Everyone has APIs Too many to discuss
here Usually REST Based PHP libraries common Find the service, read docs
One Last Thing http://code.google.com/p/schedulematch/ http://apps.facebook.com/cmuschedule/
Please Help
Photo Credits http://lolmartshirts.com/wp-content/uploads/2010/01/omgwtfbbq1.jpg http://www.johnberns.com/wp-content/uploads/2009/06/01-raw-xml-in-vim-no-whitespace.png http://www.flickr.com/photos/29063159@N07/2714200496/sizes/o/ http://www.xkcd.com/715/
None