SlideShare a Scribd company logo
API Reliability Guide




http://www.flickr.com/photos/erreeffe/3769670873/
                                                    @nickdenardis / #psuweb12
Nick DeNardis
Associate Director of Web Communications
at Wayne State University
http://wayne.edu/


Host of EDU Checkup
http://educheckup.com/


Curator of EDU Snippits
http://edusnippits.com/


Writer for .eduGuru
http://doteduguru.com/
Disclaimer
Some assembly required.
API
Application Programming Interface
Not just for robots
http://www.flickr.com/photos/stevent/3241986538/
Value Chain

http://apigee.com/
The API’s job is to
                                                                       make the
                                                                    developer as
                                                                    successful as
                                                                         possible




http://knowyourmeme.com/memes/i-hate-sandcastles-success-kid
It makes the user experience
         can break

http://www.flickr.com/photos/daychokesnight/2149714792/
Too slow...




http://www.flickr.com/photos/toolmantim/6170448143/
Too complicated...
http://www.flickr.com/photos/toolmantim/6170448143/
Adds a layer




http://www.flickr.com/photos/jabb/6715983809/
Complications with
     mobile
      “always on”
Mobile isn’t
        going anywhere

              1.45 Million devices per day
                 371,000 births per day




http://www.lukew.com/ff/entry.asp?1506
Mobile Data Traffic Expected To Rise 40-
                        Fold Over Next Five Years




http://techcrunch.com/2010/03/30/mobile-data-traffic-rise-40-fold/
Mobile users use
more bandwidth
Desktop
250 kb - Avg page weight
2.5 pages - Avg number per visit   1300


625 kb - Bandwidth per visit        975


                                    650

Mobile                              325
50 kb - Avg page weight
25 pages - Avg number per visit       0
                                                    Data

                                          Desktop          Mobile
1.25 mb - Bandwidth per visit
Mobile                 Desktop

              40



              30


Millions of
 visitors     20



              10



               0
                2009   2010   2011     2012   2013   2014   2015      2016   2017

                                     http://wayne.edu/
The mobile Web is slow
     And it’s mostly our fault
You can’t blame the network for everything


     CSS
                              Images


   Images



                            New Content
  Javascript


 Initial HTML

 Cell Latency               Cell Latency

                 Time                      Time

            First Request            Second Request
Do less better
One size != fit all
https://api.twitter.com/1/
https://us2.api.mailchimp.com/1.3/
https://api.foursquare.com/v2/
https://api.instagram.com/v1/
https://www.salesforce.com/services/Soap/c/18.0
https://api.wayne.edu/v1/


    Think versioning from the start
SOAP                                                 REST
The request:                                         The request:
GET /StockPrice HTTP/1.1                             GET /StockPrice/IBM HTTP/1.1
Host: example.org                                    Host: example.org
Content-Type: application/soap+xml; charset=utf-8    Accept: text/xml
Content-Length: nnn                                  Accept-Charset: utf-8
<?xml version="1.0"?>                                The response:
<env:Envelope xmlns:env="http://www.w3.org/
2003/05/soap-envelope"                               HTTP/1.1 200 OK
   xmlns:s="http://www.example.org/stock-service">   Content-Type: text/xml; charset=utf-8
   <env:Body>                                        Content-Length: nnn
     <s:GetStockQuote>
          <s:TickerSymbol>IBM</s:TickerSymbol>       <?xml version="1.0"?>
     </s:GetStockQuote>                              <s:Quote xmlns:s="http://example.org/stock-
   </env:Body>                                       service">
</env:Envelope>                                           <s:TickerSymbol>IBM</s:TickerSymbol>
                                                          <s:StockPrice>45.25</s:StockPrice>
The response:                                        </s:Quote>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<env:Envelope xmlns:env="http://www.w3.org/
2003/05/soap-envelope"
   xmlns:s="http://www.example.org/stock-service">
   <env:Body>
     <s:GetStockQuoteResponse>
          <s:StockPrice>45.25</s:StockPrice>
     </s:GetStockQuoteResponse>
   </env:Body>
</env:Envelope>
                                      4 kb vs 2 kb
                                      Round Trip
Stick to REST
XML sucks
http://www.flickr.com/photos/philmanker/3654636770/
Your best friend
               JSON
Easy to encode:
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
json_encode($arr);




Easy to decode:
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
json_decode($json);

Javascript:
var myObject = eval('(' + json + ')');

                                                Douglas Crockford
Existing Resources




http://doteduguru.com/id7800-results-higher-ed-cms-usage-survey-2011.html
Flattened highed =
 More interfaces
           CRM
           CMS
         iModules
          Events
     Course Schedule
          Parking
           Flickr
         YouTube
      Faculty Profiles
     Library Catalog
Your data is everywhere
                                          Website
CMS
         Gather &
          Clean

                                          Mobile
                                          Website
Events
                    Shadow
                    storage

                                          Mobile
                                           App

LDAP
                                API
                              Webserver
                                           Digital
                                          Signage


Banner

                                           Third
                                           Party
API is the glue
                                           Website
CMS
          Gather &
           Clean

                                           Mobile
                                           Website
Events
                     Shadow
                     storage

                                           Mobile
                                            App

LDAP
                                 API
                               Webserver
                                            Digital
                                           Signage


Banner

                                            Third
                                            Party
Rolling your own
       API
     Trust no one.
Making the glue
               Ingredients:

Server space you control
api.domain.edu or domain.edu/api

Ability:
  • Database
  • Cronjobs
  • Server logs
  • Analytics
  • PHP accelerator
  • Xdebug
Getting data closer
Documentation
                                                         Design
http://www.flickr.com/photos/edublogger/6950969837/
API Reliability Guide
Affordance
                     The physical design will communicate how it
                                is suppose to be used
http://www.flickr.com/photos/hawkexpress/269032594/
/getNews
/getNewsReleases
/findPeople
/getPerson
/eventsList
/eventInfo
/eventRSVP
/classSearch
/semesterList
/parkingLotList
/parkingAvailable
Create. Read. Update. Delete.




http://www.flickr.com/photos/fss/2181882493/
Read first.




http://www.flickr.com/photos/hackaday/4425372655/
GET /academic/colleges/listing
   GET /academic/colleges/info/150


REST                                       Item


 Category                       Function

            Interface (Class)
GET /academic/colleges/listing
GET /academic/colleges/info

GET /academic/majors/listing
GET /academic/majors/info

GET /academic/classes/listing
GET /academic/classes/info

GET /parking/availability/listing
GET /parking/availability/info
The devil is in the details
 Simple URL


Response code
 Total count

Data container


    Keep it
 lightweight

                 91 KB
Use only what you need


 Filters




Less data

            41 KB
Writing data
POST /admissions/rfi/add
POST /admissions/visit/add
POST /admissions/application/add

POST /academic/colleges/add
POST /academic/colleges/edit

POST /academic/majors/add
POST /academic/majors/edit

Post data:
id=3047
Soft Delete
 (keep all the data!)
POST /academic/colleges/remove

POST /academic/majors/remove

POST /academic/classes/remove

POST /parking/availability/remove


Post data:
id=3047
Authentication
    /api/user/auth
Auth workflow
Request       API Key         Rate Limit

                         Username/Pass     Session ID
Check Credentials
                         Session ID

(Do work)           Return
Rate Limiting
 100 per minute per Key/IP
Cache. Cache.
   Cache.
Professional cache




http://www.flickr.com/photos/carlos/2417032795/
APC

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>
Static Cache




http://www.flickr.com/photos/basic_sounds/5779597720/
Static files
<?php
if ((is_file($_SERVER['SCRIPT_FILENAME'].'.json'))
   && (time()-filemtime($_SERVER['SCRIPT_FILENAME'].'.json') < 3600))
    readfile($_SERVER['SCRIPT_FILENAME'].'.json');
    exit;
    }

// (the php script itself goes here)

echo $response;
$fp = fopen($_SERVER['SCRIPT_FILENAME'].'.json', 'w');
fwrite($fp, $response);
fclose($fp);

?>
HTML5
                                       localStorage
if (typeof(localStorage) == 'undefined' ) {
    alert('Your browser does not support HTML5 localStorage. Try upgrading.');
} else {
    try {
         localStorage.setItem("name", "Hello World!"); //saves to the database,
    } catch (e) {
          if (e == QUOTA_EXCEEDED_ERR) {
              alert('Quota exceeded!'); //data wasn't successfully saved due to quota exceed
so throw an error
         }
    }

      document.write(localStorage.getItem("name")); //Hello World!
      localStorage.removeItem("name"); //deletes the matching item from the database
}




http://paperkilledrock.com/2010/05/html5-localstorage-part-one/
JSONP

function handle_data(data) {
   // `data` is now the object representation of the JSON data
}


---
http://some.tld/web/service?callback=handle_data:
---
handle_data({"data_1": "hello world", "data_2":
["the","sun","is","shining"]});
Expires header
        <?php
        header('Expires: '.gmdate('D, d M Y H:i:s GMT', time() + 3600));
        ?>




1 Month              1 Week                          1 Day
Semesters      Courses                                Events
Subjects       Media Experts                          News
Degrees
Map Categories                                       No Cache
Map Locations
                                                      Course Availability
                                                      Parking Availability
Our Stats
Feb 2011 - In production
6.1 million requests
48% from mobile
  21% iOS
  23% Android
  66% Web
95% GET’s
16 ms average response time
Examples
Mobile news
API Reliability Guide
maps/locations/listing
Google API


                  events/event/listing




             directory/people/listing




             academic/courses/listing
maps/category/listing

                           events/event/listing


                        maps/location/info
faculty/profile/info




                      go/url/info
Hackathon
                                                 Community through data




http://www.flickr.com/photos/hackny/5684887983/
Resources
•   http://apigee.com/

•   http://rubyonrails.org/

•   http://cakephp.org/

•   https://groups.google.com/group/api-craft/

•   http://37signals.com/svn/posts/3018-api-design-for-humans

•   http://broadcast.oreilly.com/2011/06/the-good-the-bad-the-ugly-of-rest-
    apis.html

•   http://sixrevisions.com/html/introduction-web-storage/

•   http://webcomm.fiu.edu/2011/11/json-as-an-api-tool-and-why-its-awesome/

•   http://doteduguru.com/id4579-results-higher-ed-cms-usage.html
Hackathons
•   http://dschool.stanford.edu/blog/2012/01/27/hack-d-kicks-off-more-than-a-
    dozen-projects-underway/

•   http://civic.mit.edu/blog/schock/occupydata-hackathon-2-roundup

•   http://newmed.media.mit.edu/health-and-wellness-innovation-2012

•   http://nyuad.nyu.edu/hackathon/about/

•   http://startup.berkeley.edu/hackathon/

•   http://www.njit.edu/hackathon/

•   http://www.lib.umich.edu/art-architecture-engineering-library/
    announcements/48-hour-mobile-app-hackathon
Questions?
  Don’t be shy.
Thank You
              @nickdenardis
        nick.denardis@gmail.com
        http://nickdenardis.com/
https://speakerdeck.com/u/nickdenardis

More Related Content

What's hot (8)

PPTX
The Fundamentals of HTML5
DataLeader.io
 
KEY
Speed is Essential for a Great Web Experience
Digicure ApS
 
PPTX
Continuous delivery on the cloud
Anand B Narasimhan
 
PDF
C fowler intro-azure
sdeconf
 
PPTX
Fastandbeautiful zagrebtechsauna
Doug Sillars
 
PPT
Simplified Web2.0 application development with Project Zero
Shawn Zhu
 
PPTX
When worlds Collide: HTML5 Meets the Cloud
David Pallmann
 
PPTX
Serverless APIs and you
James Beswick
 
The Fundamentals of HTML5
DataLeader.io
 
Speed is Essential for a Great Web Experience
Digicure ApS
 
Continuous delivery on the cloud
Anand B Narasimhan
 
C fowler intro-azure
sdeconf
 
Fastandbeautiful zagrebtechsauna
Doug Sillars
 
Simplified Web2.0 application development with Project Zero
Shawn Zhu
 
When worlds Collide: HTML5 Meets the Cloud
David Pallmann
 
Serverless APIs and you
James Beswick
 

Similar to API Reliability Guide (20)

PDF
Creating an Effective Mobile API
Nick DeNardis
 
PDF
App engine cloud_comp_expo_nyc
Chris Schalk
 
PDF
HTML5 and the dawn of rich mobile web applications
James Pearce
 
PDF
App engine devfest_mexico_10
Chris Schalk
 
PDF
Esri Web Applications February11 2011
delmelle
 
PDF
What is Google App Engine
Chris Schalk
 
PDF
Web Apps and more
Yan Shi
 
PDF
Web app and more
faming su
 
PDF
Mobile is slow - Over the Air 2013
Jon Arne Sæterås
 
PDF
Building an Appier Web - Velocity Amsterdam 2016
Andy Davies
 
PDF
Building an Appier Web - London Web Standards - Nov 2016
Andy Davies
 
PDF
A "lofiAPI": Using open source applications and simple XML to build a library...
jason clark
 
KEY
CSG 2012
Scotty Logan
 
PPTX
Progressive Web Apps - Overview & Getting Started
Gaurav Behere
 
PPT
Jason.O Keefe.Genuitec.Presentation.Final
Ajax Experience 2009
 
PDF
Building cross platform mobile web apps
James Pearce
 
PDF
LA RubyConf 2009 Waves And Resource-Oriented Architecture
Dan Yoder
 
PDF
Building Cloud-Based Cross-Platform Mobile Web Apps
James Pearce
 
PPTX
OpenSource Node.js API Framework and Server for Enterprise
Shubhra Kar
 
PDF
Building tomorrow's web with today's tools
James Pearce
 
Creating an Effective Mobile API
Nick DeNardis
 
App engine cloud_comp_expo_nyc
Chris Schalk
 
HTML5 and the dawn of rich mobile web applications
James Pearce
 
App engine devfest_mexico_10
Chris Schalk
 
Esri Web Applications February11 2011
delmelle
 
What is Google App Engine
Chris Schalk
 
Web Apps and more
Yan Shi
 
Web app and more
faming su
 
Mobile is slow - Over the Air 2013
Jon Arne Sæterås
 
Building an Appier Web - Velocity Amsterdam 2016
Andy Davies
 
Building an Appier Web - London Web Standards - Nov 2016
Andy Davies
 
A "lofiAPI": Using open source applications and simple XML to build a library...
jason clark
 
CSG 2012
Scotty Logan
 
Progressive Web Apps - Overview & Getting Started
Gaurav Behere
 
Jason.O Keefe.Genuitec.Presentation.Final
Ajax Experience 2009
 
Building cross platform mobile web apps
James Pearce
 
LA RubyConf 2009 Waves And Resource-Oriented Architecture
Dan Yoder
 
Building Cloud-Based Cross-Platform Mobile Web Apps
James Pearce
 
OpenSource Node.js API Framework and Server for Enterprise
Shubhra Kar
 
Building tomorrow's web with today's tools
James Pearce
 
Ad

More from Nick DeNardis (20)

PDF
How to be better at getting things done in 2022
Nick DeNardis
 
PDF
What is quality code? From cruft to craft
Nick DeNardis
 
PDF
Why #littlebigdetails Matter and What You Should Do About Them
Nick DeNardis
 
PDF
CASE IV - Making that first impression online
Nick DeNardis
 
PDF
Personal and Professional Social Media
Nick DeNardis
 
PDF
Designing for next steps: A forward moving Web experience
Nick DeNardis
 
PDF
Designing for next steps - A forward moving Web experience
Nick DeNardis
 
PDF
Producing a mobile presence. Timeline: Yesterday...
Nick DeNardis
 
PDF
Iterative Website Redesign: Micro Goals in Action - CASEV 2011
Nick DeNardis
 
PDF
Iterative Website Redesign - Micro Goals in Action
Nick DeNardis
 
PDF
Give Your Content Legs and Run With It - PSUWEB11
Nick DeNardis
 
KEY
Social Media Tools for Startups
Nick DeNardis
 
PDF
Golden Rule for the Web - #eduGuruSummit
Nick DeNardis
 
PDF
LIS7470 - Information Architecture
Nick DeNardis
 
PDF
Flexible Web Branding, the Case Against Single Web Templates - CASEV 2010
Nick DeNardis
 
PDF
Better Design Through Analytics - #eduiconf 2010
Nick DeNardis
 
PDF
Web Metrics: An Overview - #eduiconf 2010
Nick DeNardis
 
PDF
Analyzing Real-time User Visitor Searches
Nick DeNardis
 
PDF
Realigning your Web Redesign Process
Nick DeNardis
 
PPT
State of the Wayne State Web Site
Nick DeNardis
 
How to be better at getting things done in 2022
Nick DeNardis
 
What is quality code? From cruft to craft
Nick DeNardis
 
Why #littlebigdetails Matter and What You Should Do About Them
Nick DeNardis
 
CASE IV - Making that first impression online
Nick DeNardis
 
Personal and Professional Social Media
Nick DeNardis
 
Designing for next steps: A forward moving Web experience
Nick DeNardis
 
Designing for next steps - A forward moving Web experience
Nick DeNardis
 
Producing a mobile presence. Timeline: Yesterday...
Nick DeNardis
 
Iterative Website Redesign: Micro Goals in Action - CASEV 2011
Nick DeNardis
 
Iterative Website Redesign - Micro Goals in Action
Nick DeNardis
 
Give Your Content Legs and Run With It - PSUWEB11
Nick DeNardis
 
Social Media Tools for Startups
Nick DeNardis
 
Golden Rule for the Web - #eduGuruSummit
Nick DeNardis
 
LIS7470 - Information Architecture
Nick DeNardis
 
Flexible Web Branding, the Case Against Single Web Templates - CASEV 2010
Nick DeNardis
 
Better Design Through Analytics - #eduiconf 2010
Nick DeNardis
 
Web Metrics: An Overview - #eduiconf 2010
Nick DeNardis
 
Analyzing Real-time User Visitor Searches
Nick DeNardis
 
Realigning your Web Redesign Process
Nick DeNardis
 
State of the Wayne State Web Site
Nick DeNardis
 
Ad

Recently uploaded (20)

PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Advancing WebDriver BiDi support in WebKit
Igalia
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
July Patch Tuesday
Ivanti
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Advancing WebDriver BiDi support in WebKit
Igalia
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
July Patch Tuesday
Ivanti
 

API Reliability Guide