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
Learning to Share APIs
Search
Scott Feinberg
April 14, 2016
Programming
0
42
Learning to Share APIs
Originally Presented at O'Reilly Software Architecture Conf 4/13/2016
Scott Feinberg
April 14, 2016
Tweet
Share
More Decks by Scott Feinberg
See All by Scott Feinberg
Building API Tooling that Doesn't Suck
scottefein
0
460
Other Decks in Programming
See All in Programming
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
18k
Code Reviews
bkuhlmann
4
890
PHPはいつから死んでいるかの調査
chiroruxx
1
360
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
350
SwiftUI Performance 不要なViewの再描画と更新を抑える
bigamitiongit
1
160
Snowflakeで眠ったデータを起こそう!
estie
0
110
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
110
Folding Cheat Sheet #3
philipschwarz
PRO
0
120
Elm Form Validation
bkuhlmann
0
510
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
100
Netty Chicago Java User Group 2024-04-17
sullis
0
170
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
13
1.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
243
20k
Making Projects Easy
brettharned
108
5.5k
Thoughts on Productivity
jonyablonski
57
3.8k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Designing Experiences People Love
moore
136
23k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
16
1.4k
Optimizing for Happiness
mojombo
370
69k
Into the Great Unknown - MozCon
thekraken
10
990
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
The Cost Of JavaScript in 2023
addyosmani
15
3.8k
Transcript
Sanely Sharing APIs
Scott Feinberg
Our Agenda Today
APIs Cause Problems
APIs Divide Us
Friction Across Teams Information Silos Duplication of Effort
The Cause?
We Don’t Know How to Share Our APIs
Team A Team B
Team C Team D
Let’s learn to share
What makes for easy sharing?
If you do all these things I’m about to talk
about...
Pick a Spec Format
What is a Spec?
OpenAPI/Swagger
Other Options
Want to see some specs?
Making Specs
Generate your specs
Generate your specs by proxy
Updating Spec during CI Builds
Why do you need specs?
None
None
None
Generate Good Documentation
Generate Integration Tests
How should your system talk to my system?
Canonical Protocols + Schemas
Pick a Protocol
Standardize Your Schema
Canonical Authentication
Design an Authentication Schema
Ways to Authenticate
Proxy-Based Authentication Proxy Lookup Key `dontshareme` User = Bob api.nytimes.com/svc/service_a/kittens/1?api-key=dontshareme
Service A service_a.consul/kittens/1 header:{User=Bob}
Available Proxy or “API Gateway”
So what should I do?
Your Sharing Checklist
The new process for creating an API...
None
None
New York Times Developer APIs
NYT Developer API Program
Announcing Today... (or when I get around to it)
The New (Open Source) Stack
What can people do w/NYT APIs?
None
Fin
Questions?