$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ApiBuilder
Search
sullis
July 18, 2017
Technology
1
500
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
Dependency Management for Java - Seattle 2025-11-18
sullis
0
11
Dependency Management for Java - Portland - 2025-11-04
sullis
0
12
Dependency management for Java applications 2025-09-11
sullis
0
20
S3 NYC Iceberg meetup 2025-07-10
sullis
0
46
Amazon S3 Chicago 2025-06-04
sullis
0
110
Amazon S3 Boston 2025-05-07
sullis
0
74
Netty ConFoo Montreal 2025-02-27
sullis
0
120
GitHub Actions ConFoo Montreal 2025-02-26
sullis
0
79
Netty Portland Java User Group 2025-02-18
sullis
0
21
Other Decks in Technology
See All in Technology
グレートファイアウォールを自宅に建てよう
ctes091x
0
140
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
6
1.3k
pmconf2025 - データを活用し「価値」へ繋げる
glorypulse
0
720
Kiro Autonomous AgentとKiro Powers の紹介 / kiro-autonomous-agent-and-powers
tomoki10
0
370
技術以外の世界に『越境』しエンジニアとして進化を遂げる 〜Kotlinへの愛とDevHRとしての挑戦を添えて〜
subroh0508
1
430
品質のための共通認識
kakehashi
PRO
3
230
ブロックテーマとこれからの WordPress サイト制作 / Toyama WordPress Meetup Vol.81
torounit
0
540
エンジニアリングをやめたくないので問い続ける
estie
2
1k
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
110
法人支出管理領域におけるソフトウェアアーキテクチャに基づいたテスト戦略の実践
ogugu9
1
220
最近のLinux普段づかいWaylandデスクトップ元年
penguin2716
1
680
5分で知るMicrosoft Ignite
taiponrock
PRO
0
320
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Done Done
chrislema
186
16k
Embracing the Ebb and Flow
colly
88
4.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
How to Ace a Technical Interview
jacobian
280
24k
How STYLIGHT went responsive
nonsquared
100
6k
KATA
mclloyd
PRO
32
15k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
700
The Pragmatic Product Professional
lauravandoore
37
7.1k
How GitHub (no longer) Works
holman
316
140k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
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