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
ApiBuilder
Search
sullis
July 18, 2017
Technology
1
490
ApiBuilder
Portland Java User Group
July 18, 2017
Portland Oregon
#rest #java #scala #json #gilt #apibuilder
sullis
July 18, 2017
Tweet
Share
More Decks by sullis
See All by sullis
S3 NYC Iceberg meetup 2025-07-10
sullis
0
27
Amazon S3 Chicago 2025-06-04
sullis
0
91
Amazon S3 Boston 2025-05-07
sullis
0
45
Netty ConFoo Montreal 2025-02-27
sullis
0
78
GitHub Actions ConFoo Montreal 2025-02-26
sullis
0
49
Netty Portland Java User Group 2025-02-18
sullis
0
8
Amazon S3 NYJavaSIG 2024-12-12
sullis
0
180
Amazon S3 - Portland Java User Group 2024-09-17
sullis
0
99
Netty - Montreal Java User Group 2024-05-21
sullis
0
170
Other Decks in Technology
See All in Technology
そもそも AWS FIS について。なぜ今 FIS のハンズオンなのか?などなど
kazzpapa3
2
120
少人数でも回る! DevinとPlaybookで支える運用改善
ishikawa_pro
1
210
分散トレーシングによる コネクティッドカーのデータ処理見える化の試み
thatsdone
0
200
AI駆動開発 with MixLeap Study【大阪支部 #3】
lycorptech_jp
PRO
0
200
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
7
5.8k
Data Engineering Study#30 LT資料
tetsuroito
1
560
AI エンジニアの立場からみた、AI コーディング時代の開発の品質向上の取り組みと妄想
soh9834
6
260
OpenTelemetry の Log を使いこなそう
biwashi
5
990
AI時代にも変わらぬ価値を発揮したい: インフラ・クラウドを切り口にユーザー価値と非機能要件に向き合ってエンジニアとしての地力を培う
netmarkjp
0
220
MCPに潜むセキュリティリスクを考えてみる
milix_m
1
720
2025-07-25 NOT A HOTEL TECH TALK ━ スマートホーム開発の最前線 ━ SOFTWARE
wakinchan
0
120
AIコードアシスタントとiOS開発
jollyjoester
1
230
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Why Our Code Smells
bkeepers
PRO
337
57k
Scaling GitHub
holman
461
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Thoughts on Productivity
jonyablonski
69
4.7k
Producing Creativity
orderedlist
PRO
346
40k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Done Done
chrislema
184
16k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Transcript
Sean Sullivan July 18, 2017 Portland Java User Group
• software engineer • 21 years on the JVM •
back office systems @ HBC About me
https://en.wikipedia.org/wiki/Hudson%27s_Bay_Company
saksfifthavenue.com saksoff5th.com lordandtaylor.com gilt.com thebay.com
API driven development
API descriptors
API descriptors are not a new concept
• 1996: CORBA 2.0 IDL • 1997: Java RMI remote
interfaces • 1999: EJB remote interfaces • 2000: WSDL 1.0 (SOAP)
• 2006: WADL (REST) • 2011: Swagger (REST) • 2014:
ApiDoc (REST) • 2017: ApiDoc rebranded to ApiBuilder
www.apibuilder.io
None
describe REST API in a JSON file
1. start by describing your models 2. map your models
to resources
gilt.com
www.gilt.com
• Rails app • one Git repo • monolith! Gilt:
2007 => 2008
• Rails app • JSP web framework • ~10 services
(Java) • handcrafted Java clients • weak typing (java.util.HashMap) Gilt: 2009 => 2010
• JSP’s • 100+ services (Java, Scala) • strongly typed
client libraries • Gilt “Commons” library Gilt: 2011 => 2013
• Gilt Commons library • 250+ services • dependency hell
• ApiBuilder project started on Github Gilt: 2014
Dependency hell Java runtime hell
• java.lang.NoClassDefFoundError • java.lang.NoSuchFieldError • java.lang.NoSuchMethodError Java runtime hell
Dependency hell kills productivity
None
Mitigating dependency hell • API design must be first class
• backwards and forward compatibility • accurate documentation • generated client libraries
• 350+ services • new services built with ApiBuilder +
generated clients • Gilt Commons library is deprecated Gilt: 2015 => 2017
Web Checkout Android Checkout iPhone Checkout Checkout service api.json
Generating client libraries with ApiBuilder
Code generators
None
None
Conclusion • API driven development • visit www.apibuilder.io
The end
None
Additional resources
Gilt 2013
Gilt 2015