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
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
310
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
150
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
170
Song by Tony Blank
apistrat
0
190
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
140
Other Decks in Technology
See All in Technology
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
430
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.7k
AI駆動開発を事業のコアに置く
tasukuonizawa
1
170
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
350
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
GitLab Duo Agent Platform × AGENTS.md で実現するSpec-Driven Development / GitLab Duo Agent Platform × AGENTS.md
n11sh1
0
130
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
220
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
Tebiki Engineering Team Deck
tebiki
0
24k
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
720
今日から始めるAmazon Bedrock AgentCore
har1101
4
410
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
Featured
See All Featured
From π to Pie charts
rasagy
0
120
The Pragmatic Product Professional
lauravandoore
37
7.1k
How to Talk to Developers About Accessibility
jct
2
130
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Claude Code のすすめ
schroneko
67
210k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Building the Perfect Custom Keyboard
takai
2
680
The SEO identity crisis: Don't let AI make you average
varn
0
240
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
BBQ
matthewcrist
89
10k
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