$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
APIs are Interfaces Too
Search
API Strategy & Practice Conference
September 25, 2014
Technology
0
65
APIs are Interfaces Too
by Alex Koppel @ APIStrat 2014 in Chicago
API Strategy & Practice Conference
September 25, 2014
Tweet
Share
More Decks by API Strategy & Practice Conference
See All by API Strategy & Practice Conference
APIStrat 2016 | The end of polling: why and how to transform a REST API into a Data Streaming API (Audrey Neveu)
apistrat
12
300
APIStrat 2016 | OpenAPI Trek: Beyond API Documentation (Arnaud Lauret)
apistrat
5
230
APIStrat 2016 | Flying Dreams: Real-Time Communication from the Edge of Space (Jonathan Barton, Neha Abrol)
apistrat
1
140
APIStrat 2016 | On-prem support? That was so 1982 (Charlie Ozinga)
apistrat
0
120
APIStrat 2016 | Effortless microservices in production with Kubernetes (Ken Wronkiewicz)
apistrat
0
160
Song by Tony Blank
apistrat
0
180
API Lifecycle Manager by Steve Fonseca
apistrat
2
250
APIs In The Enterprise: How Walgreens Formed It's Digital Business by Drew Schweinfurth
apistrat
1
390
Developers Are Difficult by Andrew Noonan
apistrat
0
130
Other Decks in Technology
See All in Technology
コンテキスト情報を活用し個社最適化されたAI Agentを実現する4つのポイント
kworkdev
PRO
1
1.5k
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
220
チーリンについて
hirotomotaguchi
6
2k
mairuでつくるクレデンシャルレス開発環境 / Credential-less development environment using Mailru
mirakui
5
540
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
1
810
Python 3.14 Overview
lycorptech_jp
PRO
1
120
非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜
hawkymisc
2
200
ExpoのインダストリーブースでみたAWSが見せる製造業の未来
hamadakoji
0
140
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
210
20251209_WAKECareer_生成AIを活用した設計・開発プロセス
syobochim
7
1.6k
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
7
690
IAMユーザーゼロの運用は果たして可能なのか
yama3133
1
460
Featured
See All Featured
How GitHub (no longer) Works
holman
316
140k
Building Adaptive Systems
keathley
44
2.9k
Navigating Team Friction
lara
191
16k
KATA
mclloyd
PRO
33
15k
Done Done
chrislema
186
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How to train your dragon (web standard)
notwaldorf
97
6.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
How to Ace a Technical Interview
jacobian
281
24k
Statistics for Hackers
jakevdp
799
230k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
730
A Modern Web Designer's Workflow
chriscoyier
698
190k
Transcript
APIS
the holy steer of Memphis Apis Memphis X Not
Application Programming Interfaces
Me • Ruby/iOS/JS since 2008 • Senior Developer at eSpark
• Previously: Wunderlist, Facebook marketing, healthcare IT
None
None
APIs are important
API design makes a difference ?
Case Study
None
None
Yippie
None
None
None
???
None
None
Yippie
None
None
None
None
None
??? ??? ??? ??? ??? ??? ??? ???
None
None
WAT
Why?
Thing is... • The FB API is actually quite well
designed • Strong fundamental pattern • Not amateurs
What went wrong?
APIs are Interfaces
Principle of Least Surprise http://en.wikipedia.org/wiki/Principle_of_least_astonishment "People are part of the
system. The design should match the user's experience, expectations, and mental models." What is least surprising may however depend on the expected audience, e.g. end users, programmers or system administrators.
Developers are our users
None
None
None
None
Avoid Inconsistency
Consistency is key • Consistent format • Consistent naming •
Consistent function
Perspective • Put yourself in another developer's shoes • Even
for an internal API • Extra effort, but it pays off over time
Consideration • Make decisions about your API early on •
Or right now! • Define how it should behave
Building an SDK • Consuming your own API is the
best test • Can you build simple, consistent methods?
def set_app_restrictions(new_settings) graph_call(app_id, { restrictions: new_settings.to_json }) end
def set_app_restrictions(new_settings) if new_settings[“age_distribution”] new_settings[“age_distribution”] = new_settings[“age_restrictions”].to_json end graph_call(app_id, {
restrictions: new_settings.to_json }) end
Thanks! Questions? @arsduo