Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How to Design an API
Search
Simon Wood
July 02, 2014
Technology
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How to Design an API
Talk at London API Meetup on 2nd July 2014.
Simon Wood
July 02, 2014
More Decks by Simon Wood
See All by Simon Wood
Managing Legacy Tech Migrations
hpoom
0
100
Killing off legacy tech the right way
hpoom
0
210
Tech's Got Talent
hpoom
1
310
Holiday Extras AWS use case
hpoom
0
230
Node.js & Microservices
hpoom
2
380
Javascript: One language to rule them all
hpoom
0
290
APIs are eating the world
hpoom
2
1k
Wake up and smell the API
hpoom
1
190
APIs from the Trenches - API Days Mediterranea 2015
hpoom
0
220
Other Decks in Technology
See All in Technology
DORA_Metrics.pdf
wagnerfusca
1
140
PQC移行の今 -- IETF からみた現在地
satokan
4
690
The seven pitfalls of AI (revised version)
ufried
0
130
Terraformを用いたJamf Pro構成のIaC, GitOps化への挑戦
yukun
0
120
「大丈夫そう?」をObservabilityで確かめる
mrmtsu
0
240
Apache Iceberg が拓く AI 時代のオープンレイクハウス
tomtanaka
0
200
Swap and Memory Reclaim - Squeezing Out More RAM
ennael
PRO
1
1.4k
Azure Copilot Resiliency Agentをいろいろ試してみる
tomokusaba
0
140
個別開発で終わらせない。 現場の課題をプロダクトの強さに変える StockmarkのFDE
ktkrhr
0
440
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
320
AIに賢く動いてもらうためのコンテキスト〜Snowflake女子会 vol.8
snowwmn0824
0
200
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
260
Featured
See All Featured
Claude Code のすすめ
schroneko
67
230k
Prompt Engineering for Job Search
mfonobong
0
460
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Site-Speed That Sticks
csswizardry
13
1.5k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
290
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
720
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Transcript
How to Design a Unified API London API Group -
02/07/14 Wednesday, 2 July 14
Simon Wood @hpoom Holiday Extras Image by Barney Livingston -
Flickr Wednesday, 2 July 14
@hpoom Wednesday, 2 July 14
@hpoom Over 40m visits and 500k bookings in the last
5 years Give £20m revenue to hotels each year Wednesday, 2 July 14
@hpoom Wednesday, 2 July 14
What I am going to cover The Problem Design Solutions
Considerations Technology @hpoom Wednesday, 2 July 14
LET’S TALK ABOUT THE PROBLEM @hpoom Wednesday, 2 July 14
Multiple sources of data @hpoom Wednesday, 2 July 14
@hpoom Wednesday, 2 July 14
Multiple consumers of data @hpoom Wednesday, 2 July 14
Shortbreaks traffic breakdown 18 months @hpoom Wednesday, 2 July 14
@hpoom Wednesday, 2 July 14
De couple @hpoom Wednesday, 2 July 14
Hide legacy @hpoom Wednesday, 2 July 14
Speed! @hpoom Wednesday, 2 July 14
Source: Strangeloop Networks Case Study Amazon 100 milliseconds revenue 1%
Mozilla 2.2 seconds downloads 60m per year @hpoom Wednesday, 2 July 14
Scaleability @hpoom Wednesday, 2 July 14
Be efficient with resource @hpoom Wednesday, 2 July 14
SO WHAT IS THE THE SOLUTION @hpoom Wednesday, 2 July
14
The Design Bit @hpoom Wednesday, 2 July 14
Website Application Layer Legacy Reservation System @hpoom Wednesday, 2 July
14
Website Application Layer & API Legacy Reservation System Affiliates @hpoom
Wednesday, 2 July 14
Website Application Layer & API Legacy Reservation System Affiliates Hotel
System Ticket System @hpoom Wednesday, 2 July 14
Website Application Layer & API Legacy Reservation System Affiliates Hotel
System Ticket System @hpoom Wednesday, 2 July 14
Unified API Website Mobile App Affiliates Smart TV Hotels Tickets
Transport Food Multiple consumers of data Multiple sources of data @hpoom Wednesday, 2 July 14
Proxy @hpoom Wednesday, 2 July 14
Website Application Layer Legacy Reservation System @hpoom Wednesday, 2 July
14
Website Application Layer Unified API Legacy Reservation System New System
Proxy @hpoom Wednesday, 2 July 14
Hierarchical @hpoom Wednesday, 2 July 14
Website Application Layer Unified API Legacy Reservation System New System
@hpoom Wednesday, 2 July 14
Website Application Layer Unified API Product API Content API Price
& Availability Name Star Rating Facilities @hpoom Wednesday, 2 July 14
Website Application Layer Unified API Product API Content API Hotels
Tickets Transport @hpoom Wednesday, 2 July 14
Website Application Layer Unified API Product API Content API Hotels
Tickets Transport Legacy New Affiliate @hpoom Wednesday, 2 July 14
Micro-service architecture Idea by Fred George - http://bit.ly/fred-george @hpoom Wednesday,
2 July 14
Traditional Enterprise Architecture Micro Service Architecture Diagram by James Hughes
- http://bit.ly/micro-service @hpoom Wednesday, 2 July 14
Website Application Layer Unified API Content API @hpoom Wednesday, 2
July 14
Authentication @hpoom Wednesday, 2 July 14
Unified API Website Mobile App Affiliates Smart TV Hotels Tickets
Transport Food Auth @hpoom Wednesday, 2 July 14
Standardise your payloads @hpoom Wednesday, 2 July 14
PUBLIC SERVICE ANNOUNCEMENT @hpoom This is THE correct way to
write numeric dates 2014-07-02 Source XKCD - http://bit.ly/iso-date Wednesday, 2 July 14
Checksum tricks @hpoom MD5 ("Checksum tricks") = 1aef67e94cf84d9c4200e24cbdc9f93d Wednesday, 2
July 14
Cache & async requests @hpoom Wednesday, 2 July 14
Unified API Website Mobile App Affiliates Smart TV Hotels Tickets
Transport Food Async Total request time is only as slow as the slowest provider 1.2s 0.8s 1.1s 0.6s @hpoom Wednesday, 2 July 14
Unified API Website Mobile App Affiliates Smart TV Hotels Tickets
Transport Food Cache Cache Cache Cache Cache If we hit the top cache respond in 0.04s @hpoom Wednesday, 2 July 14
In summary Solutions Unified API Standard Payloads Micro Services Proxy
Cache & Async Hierarchical Problems Multi Data Sources Multi Consumers Decouple Hide Legacy Speed Scaleability @hpoom Wednesday, 2 July 14
SOME CONSIDERATIONS @hpoom Wednesday, 2 July 14
Open & Commercial @hpoom Wednesday, 2 July 14
The right way to rate limit @hpoom Wednesday, 2 July
14
Who needs access? @hpoom Wednesday, 2 July 14
Unlimited pools of talent @hpoom Chris Jason, ESPN - http://bit.ly/espnapi
Wednesday, 2 July 14
Debugging & Logs @hpoom Wednesday, 2 July 14
Our log data in loggly @hpoom Wednesday, 2 July 14
700k unique payloads 3GB JSON logged daily @hpoom Wednesday, 2
July 14
WHAT TECHNOLOGY? @hpoom Wednesday, 2 July 14
We use... @hpoom express web application framework for node Wednesday,
2 July 14
Yesterday’s Standard SOAP XML Today’s Standard REST JSON Keep it
simple! @hpoom Wednesday, 2 July 14
@hpoom Wednesday, 2 July 14
Language does not matter @hpoom Wednesday, 2 July 14
Good docs @hpoom Pusher Blog - http://bit.ly/devapidocs Wednesday, 2 July
14
TAKE AWAYS @hpoom Wednesday, 2 July 14
APIs Mobile Social Cloud @hpoom Diagram by Sam Ramji -
http://bit.ly/biz-apis Wednesday, 2 July 14
Consume your own APIs @hpoom uses to build Source Zach
Holman - http://bit.ly/githubdogfood uses to build Wednesday, 2 July 14
@hpoom “You wouldn't really think that an online bookstore needs
to be an extensible, programmable platform. Would you?” Steve Yegge Source Steve Yegge - http://bit.ly/yegge Wednesday, 2 July 14
is really important don't screw it up APIs Design @hpoom
Wednesday, 2 July 14
Thanks http://bit.ly/unifiedapi @hpoom twitter + github Simon Wood Wednesday, 2
July 14