SlideShare a Scribd company logo
API Design
Brian Mulloy
@landlessness
Marsh Gardiner
@earth2marsh
An Adoption-Centered Approach
@landlessness
Brian Mulloy
@earth2marsh
Marsh Gardiner
http://iloveapis2014.com
groups.google.com/group/api-craft
youtube.com/apigee
slideshare.net/apigee
Integers as a Service
Overview
• How did we get here?
• Where are we now?
• Where are we going?
• How are we going to get there?
• Questions
How did we get here?
In the beginning…
SOAP and XML-RPC
REST
The rise of…
• Software as a Service
• Web Mashups
• Virtualization
• User Experience
• Mobile
Web vs App
Technology unlocks technology…
Gehry vs Winnebago
photo: uggb
Where are we now?
Refocusing API design
Passion (and controversy)
API Craft Conference
http://api-craft.org
Monday, July 28th – Wednesday July 30th
Hypermedia Panel
API Craft Conference - http://api-craft.org
• Collection+JSON
–Mike Amundsen
• Hydra
–Markus Lanthaler
• Mason
–Jørn Wildt
• HAL
–Mike Kelly
• JSON API
–Steve Klabnik
• Siren
–Kevin Swiber
Gehry vs Winnebago
photo: uggb
Designing for adoption
Resource
(a thing that lives somewhere)
26
IP: 173.194.70.102 ➡ google.com
Twitter: 14352786 ➡ @earth2marsh
https://github.com/apigee
Verb
Applying RV patterns
Collections and entities
https://api.stripe.com/
Summary of Resource URL Patterns
/v1/charges
/v1/charges/{CHARGE_ID}
/v1/coupons
/v1/coupons/{COUPON_ID}
/v1/customers
/v1/customers/{CUSTOMER_ID}
Versions
/2010-04-01/Accounts/
Twilio
/services/data/v29.0/sobjects/Account
Salesforce
/v2/users
Foursquare
Query Parameters
/1.1/search/tweets.json?q=%23superbowl
&result_type=recent
Twitter
Header Parameters
Conveniences
/me
Facebook
/v1/people/~
LinkedIn
/v2/checkins/recent
Foursquare
Formats
/users/3207.json
SoundCloud
/users/3207
Formats
Actions
/search?q=watermelon&type=post
Facebook
/convert?from=EUR&to=CNY&amount=100
(hypothetical)
/droplets/{droplet_id}/reboot
DigitalOcean
Authentication
Dates
"created_at": "Thu Nov 03 05:19:38
+0000 2011"
Twitter
"DateTime": "2011-10-29T09:35:00Z"
Bing
"createdAt": 1320296464
Foursquare
Filters
/me?fields=name,birthday,photos.limit(10)
.fields(id,picture),videos.type(tagged)
.limit(10).fields(id, source)
Facebook
offset, limit
Facebook
page, rpp
Twitter
start, count
LinkedIn
Pagination
Pagination
offset, limit
Facebook
HATEOAS and the Hypermedia Constraint
Hypermedia
Great moments in
mishandled error code history
Errors
SDKs
Perfect is the enemy of done
General philosophy
Questions
rv@apigee.com, @ResourceVerb
brian@apigee.com, @landlessness
marsh@apigee.com, @earth2marsh
THANK YOU
Brian Mulloy
@landlessness
Marsh Gardiner
@earth2marsh
THANK YOU
Subscribe to webcasts at:
youtube.com/apigee
THANK YOU
Questions and ideas to:
groups.google.com/group/api-craft
THANK YOU
Webcast slides at:
slideshare.net/apigee
THANK YOU
Brian Mulloy
@landlessness
Marsh Gardiner
@earth2marsh

More Related Content

Similar to API Design: An Adoption-Centered Approach

From Napkin to App: Rapidly Prototype and Build for Mobile in Days
From Napkin to App:  Rapidly Prototype and Build for Mobile in DaysFrom Napkin to App:  Rapidly Prototype and Build for Mobile in Days
From Napkin to App: Rapidly Prototype and Build for Mobile in Days
Apigee | Google Cloud
 
Deploying Rails Applications: Lessons Learned
Deploying Rails Applications: Lessons LearnedDeploying Rails Applications: Lessons Learned
Deploying Rails Applications: Lessons Learned
Michael Koby
 
Making your API behave like a big boy
Making your API behave like a big boyMaking your API behave like a big boy
Making your API behave like a big boy
Andrew Siemer
 

Similar to API Design: An Adoption-Centered Approach (20)

From Napkin to App: Rapidly Prototype and Build for Mobile in Days
From Napkin to App:  Rapidly Prototype and Build for Mobile in DaysFrom Napkin to App:  Rapidly Prototype and Build for Mobile in Days
From Napkin to App: Rapidly Prototype and Build for Mobile in Days
 
Building multiplatform share point solutions
Building multiplatform share point solutionsBuilding multiplatform share point solutions
Building multiplatform share point solutions
 
From Napkin to Network: Rapidly Design, Prototype and Leverage Network APIs
From Napkin to Network: Rapidly Design, Prototype and Leverage Network APIsFrom Napkin to Network: Rapidly Design, Prototype and Leverage Network APIs
From Napkin to Network: Rapidly Design, Prototype and Leverage Network APIs
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie Mitra
 
The Platform Era - 7 steps to an API
The Platform Era - 7 steps to an APIThe Platform Era - 7 steps to an API
The Platform Era - 7 steps to an API
 
Deploying Rails Applications: Lessons Learned
Deploying Rails Applications: Lessons LearnedDeploying Rails Applications: Lessons Learned
Deploying Rails Applications: Lessons Learned
 
Open Source @ Uber
Open Source @ Uber Open Source @ Uber
Open Source @ Uber
 
SharePoint 2016 & Office 365: A Look Ahead To What's Coming - SPS Vancouver
SharePoint 2016 & Office 365: A Look Ahead To What's Coming - SPS VancouverSharePoint 2016 & Office 365: A Look Ahead To What's Coming - SPS Vancouver
SharePoint 2016 & Office 365: A Look Ahead To What's Coming - SPS Vancouver
 
muCon 2014 "Building Java Microservices for the Cloud"
muCon 2014 "Building Java Microservices for the Cloud"muCon 2014 "Building Java Microservices for the Cloud"
muCon 2014 "Building Java Microservices for the Cloud"
 
Apidays Paris 2023 - API Discovery: Standards, Publishing & Search, Steven Wi...
Apidays Paris 2023 - API Discovery: Standards, Publishing & Search, Steven Wi...Apidays Paris 2023 - API Discovery: Standards, Publishing & Search, Steven Wi...
Apidays Paris 2023 - API Discovery: Standards, Publishing & Search, Steven Wi...
 
APIs.JSON: Bootstrapping The Web of APIs
APIs.JSON: Bootstrapping The Web of APIsAPIs.JSON: Bootstrapping The Web of APIs
APIs.JSON: Bootstrapping The Web of APIs
 
20161220 - microservice
20161220 - microservice20161220 - microservice
20161220 - microservice
 
SharePoint Saturday Durban - Introduction to AngularJS with the Microsoft Graph
SharePoint Saturday Durban - Introduction to AngularJS with the Microsoft GraphSharePoint Saturday Durban - Introduction to AngularJS with the Microsoft Graph
SharePoint Saturday Durban - Introduction to AngularJS with the Microsoft Graph
 
Native Mobile Apps with Titanium Mobile
Native Mobile Apps with Titanium MobileNative Mobile Apps with Titanium Mobile
Native Mobile Apps with Titanium Mobile
 
Making your API behave like a big boy
Making your API behave like a big boyMaking your API behave like a big boy
Making your API behave like a big boy
 
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...
APIdays Singapore 2019 - Airbnb's Great Migration: Service APIs at scale, Jes...
 
Building a Solr-Driven Web Portal: Presented by Katia Muser & Ravi Mynampaty,...
Building a Solr-Driven Web Portal: Presented by Katia Muser & Ravi Mynampaty,...Building a Solr-Driven Web Portal: Presented by Katia Muser & Ravi Mynampaty,...
Building a Solr-Driven Web Portal: Presented by Katia Muser & Ravi Mynampaty,...
 
Building a Solr-driven Web Portal
Building a Solr-driven Web PortalBuilding a Solr-driven Web Portal
Building a Solr-driven Web Portal
 
Mobile: How Signals, Touchpoints, and Moments Create Engagement, Conversion a...
Mobile: How Signals, Touchpoints, and Moments Create Engagement, Conversion a...Mobile: How Signals, Touchpoints, and Moments Create Engagement, Conversion a...
Mobile: How Signals, Touchpoints, and Moments Create Engagement, Conversion a...
 
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptxAPI Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
 

More from Apigee | Google Cloud

More from Apigee | Google Cloud (20)

How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
 
Magazine Luiza at a glance (1)
Magazine Luiza at a glance (1)Magazine Luiza at a glance (1)
Magazine Luiza at a glance (1)
 
Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs
 
Apigee Demo: API Platform Overview
Apigee Demo: API Platform OverviewApigee Demo: API Platform Overview
Apigee Demo: API Platform Overview
 
Ticketmaster at a glance
Ticketmaster at a glanceTicketmaster at a glance
Ticketmaster at a glance
 
AccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First WorldAccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First World
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
 
Apigee Product Roadmap Part 2
Apigee Product Roadmap Part 2Apigee Product Roadmap Part 2
Apigee Product Roadmap Part 2
 
The Four Transformative Forces of the API Management Market
The Four Transformative Forces of the API Management MarketThe Four Transformative Forces of the API Management Market
The Four Transformative Forces of the API Management Market
 
Walgreens at a glance
Walgreens at a glanceWalgreens at a glance
Walgreens at a glance
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
 
Managing the Complexity of Microservices Deployments
Managing the Complexity of Microservices DeploymentsManaging the Complexity of Microservices Deployments
Managing the Complexity of Microservices Deployments
 
Pitney Bowes at a glance
Pitney Bowes at a glancePitney Bowes at a glance
Pitney Bowes at a glance
 
Microservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices SuccessMicroservices Done Right: Key Ingredients for Microservices Success
Microservices Done Right: Key Ingredients for Microservices Success
 
Adapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Opening Keynote with Chet KapoorAdapt or Die: Opening Keynote with Chet Kapoor
Adapt or Die: Opening Keynote with Chet Kapoor
 
Adapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Greg BrailAdapt or Die: Keynote with Greg Brail
Adapt or Die: Keynote with Greg Brail
 
Adapt or Die: Keynote with Anant Jhingran
Adapt or Die: Keynote with Anant JhingranAdapt or Die: Keynote with Anant Jhingran
Adapt or Die: Keynote with Anant Jhingran
 
London Adapt or Die: Opening Keynot
London Adapt or Die: Opening KeynotLondon Adapt or Die: Opening Keynot
London Adapt or Die: Opening Keynot
 
London Adapt or Die: Lunch keynote
London Adapt or Die: Lunch keynoteLondon Adapt or Die: Lunch keynote
London Adapt or Die: Lunch keynote
 
London Adapt or Die: Closing Keynote — Adapt Now!
London Adapt or Die: Closing Keynote — Adapt Now!London Adapt or Die: Closing Keynote — Adapt Now!
London Adapt or Die: Closing Keynote — Adapt Now!
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Recently uploaded (20)

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 

API Design: An Adoption-Centered Approach

Editor's Notes

  1. URIs are interfaces Obviousness Every thing gets a resource, an address. This is the naming of things. We have a long history of mapping people-friendly names onto machine ids. There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton
  2. So we have things. Things are nouns. Things have a state. Now we need to be able to take primitive actions on those things. Things are stored somewhere. Our basic palette of verbs gives us CRUD. http://en.wikipedia.org/wiki/Create,_read,_update_and_delete
  3. Being pragmatic, let’s spend some time to apply some of them directly.
  4. Similar things belong in groups Case sensitivity Avoid hierarchies https://stripe.com/docs/api
  5. Consider the developer adoption perspective when wrestling with API design problems. Check out resourceverb.com for more background and patterns, and get in touch with us through the channels you find there. … and start making better APIs.