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
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 applications 2025-09-11
sullis
0
14
S3 NYC Iceberg meetup 2025-07-10
sullis
0
43
Amazon S3 Chicago 2025-06-04
sullis
0
110
Amazon S3 Boston 2025-05-07
sullis
0
60
Netty ConFoo Montreal 2025-02-27
sullis
0
110
GitHub Actions ConFoo Montreal 2025-02-26
sullis
0
69
Netty Portland Java User Group 2025-02-18
sullis
0
15
Amazon S3 NYJavaSIG 2024-12-12
sullis
0
190
Amazon S3 - Portland Java User Group 2024-09-17
sullis
0
120
Other Decks in Technology
See All in Technology
Claude Code Subagents 再入門 ~cc-sddの実装で学んだこと~
gotalab555
3
650
Performance Insights 廃止から Database Insights 利用へ/transition-from-performance-insights-to-database-insights
emiki
0
270
社内報はAIにやらせよう / Let AI handle the company newsletter
saka2jp
8
1.4k
Claude Codeを駆使した初めてのiOSアプリ開発 ~ゼロから3週間でグローバルハッカソンで入賞するまで~
oikon48
5
1.5k
『OCI で学ぶクラウドネイティブ 実践 × 理論ガイド』 書籍概要
oracle4engineer
PRO
3
220
CoRL 2025 Survey
harukiabe
0
190
AIツールでどこまでデザインを忠実に実装できるのか
oikon48
6
3.4k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
12
80k
Railsの話をしよう
yahonda
0
110
ユーザーの声とAI検証で進める、プロダクトディスカバリー
sansantech
PRO
1
140
セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう! / Let's build an OAuth protected remote MCP server based on AWS managed services
kaminashi
3
320
ガバメントクラウドの概要と自治体事例(名古屋市)
techniczna
2
240
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Side Projects
sachag
455
43k
Faster Mobile Websites
deanohume
310
31k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
8
910
Balancing Empowerment & Direction
lara
4
690
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
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