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
240
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
130
APIStrat 2016 | Effortless microservices in production with Kubernetes (Ken Wronkiewicz)
apistrat
0
180
Song by Tony Blank
apistrat
0
200
API Lifecycle Manager by Steve Fonseca
apistrat
2
260
APIs In The Enterprise: How Walgreens Formed It's Digital Business by Drew Schweinfurth
apistrat
1
400
Developers Are Difficult by Andrew Noonan
apistrat
0
140
Other Decks in Technology
See All in Technology
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
1
170
The Rise of Browser Automation: AI-Powered Web Interaction in 2026
marcthompson_seo
0
310
Phase03_ドキュメント管理
overflowinc
0
2.8k
Navigation APIと見るSvelteKitのWeb標準志向
yamanoku
2
120
OpenClawでPM業務を自動化
knishioka
1
250
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
380
SaaSに宿る21g
kanyamaguc
2
170
データマネジメント戦略Night - 4社のリアルを語る会
ktatsuya
1
400
来期の評価で変えようと思っていること 〜AI時代に変わること・変わらないこと〜
estie
0
110
スピンアウト講座02_ファイル管理
overflowinc
0
1.5k
Why we keep our community?
kawaguti
PRO
0
300
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
650
Navigating Weather and Climate Data
rabernat
0
150
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
420
Paper Plane
katiecoart
PRO
0
48k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Deep Space Network (abreviated)
tonyrice
0
96
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
490
The Spectacular Lies of Maps
axbom
PRO
1
650
Un-Boring Meetings
codingconduct
0
240
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