API-First Development at Etsy | API Strategy & Practice AMS 2014
-
Upload
paul-wright -
Category
Technology
-
view
2.983 -
download
1
description
Transcript of API-First Development at Etsy | API Strategy & Practice AMS 2014
![Page 1: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/1.jpg)
API-First Development at EtsyBuilding a Unified API for a Multi-Screen World
![Page 2: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/2.jpg)
@wrighty
Who Am I?Paul Wright
Infrastructure Engineer
Core Platform
![Page 3: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/3.jpg)
What is Etsy?
![Page 4: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/4.jpg)
@wrighty
Etsy is the marketplace we make together.
![Page 5: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/5.jpg)
Etsy Seller: AHeirloom
![Page 6: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/6.jpg)
Etsy Seller: AHeirloom
![Page 7: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/7.jpg)
Etsy Seller: AHeirloom
![Page 8: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/8.jpg)
Etsy Seller: AHeirloom
![Page 9: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/9.jpg)
Etsy Seller: AHeirloom
![Page 10: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/10.jpg)
Etsy isGlobal
Etsy Seller: WildandFreeDesigns
![Page 11: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/11.jpg)
@wrighty
Quick Stats
![Page 12: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/12.jpg)
@wrighty
In 2013,Etsy Sellers MadeOver 1 Billion USD
![Page 13: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/13.jpg)
@wrighty
Etsy isMulti-Platform
![Page 14: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/14.jpg)
![Page 15: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/15.jpg)
![Page 16: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/16.jpg)
![Page 17: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/17.jpg)
![Page 18: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/18.jpg)
![Page 19: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/19.jpg)
APIv2
![Page 20: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/20.jpg)
@wrighty
The Good
![Page 21: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/21.jpg)
@wrighty
Kick StartedThird-PartyCommunity
![Page 22: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/22.jpg)
@wrighty
Powers EtsyNative Apps
![Page 23: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/23.jpg)
@wrighty
Serves Needs of Sellers
![Page 24: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/24.jpg)
@wrighty
The Bad
![Page 25: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/25.jpg)
@wrighty
Resources MirrorDB Schemas
![Page 26: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/26.jpg)
@wrighty
Client DictatesComplexity
![Page 27: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/27.jpg)
RESTNot
AlwaysBest
Etsy Seller: GalaBorn
![Page 28: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/28.jpg)
@wrighty
Multiple Requests for one
Client View
![Page 29: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/29.jpg)
@wrighty
Access Control
AddsComplexity
Etsy Seller: BlueRoseRetro
![Page 30: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/30.jpg)
APIv3
![Page 31: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/31.jpg)
@wrighty
Domain Resources, not Row Resources
![Page 32: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/32.jpg)
@wrighty
Push Complexityto Server
![Page 33: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/33.jpg)
Concurrency
Etsy Seller: StudioLiscious
![Page 34: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/34.jpg)
@wrighty
Relax REST Constraints
![Page 35: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/35.jpg)
Bespoke
Etsy Seller: HouseofSeance
![Page 36: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/36.jpg)
@wrighty
Make Access Control Explicit
![Page 37: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/37.jpg)
Perspectives
Etsy Seller: urbanantique
![Page 38: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/38.jpg)
@wrighty
PerspectivesEncapsulate who is making a call
Abstracts authentication
Three main ones: Public, Member & Shop
![Page 39: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/39.jpg)
API-First
![Page 40: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/40.jpg)
Database
Business Logic
Web ControllerAPIv2
Business Logic
![Page 41: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/41.jpg)
Database
APIv3
Business Logic
![Page 42: API-First Development at Etsy | API Strategy & Practice AMS 2014](https://reader035.fdocuments.net/reader035/viewer/2022062303/555ac20fd8b42ab1128b4c9b/html5/thumbnails/42.jpg)
@wrighty
Thanks!