API-First Development at Etsy | API Strategy & Practice AMS 2014

3,917 views
3,768 views

Published on

API-First Development at Etsy
Building a Unified API for a Multi-Screen World

Originally presented at API Strategy & Practice in Amsterdam 2014

Published in: Technology

API-First Development at Etsy | API Strategy & Practice AMS 2014

  1. 1. API-First Development at Etsy Building a Unified API for a Multi-Screen World
  2. 2. @wrighty Who Am I? Paul Wright Infrastructure Engineer Core Platform
  3. 3. What is Etsy?
  4. 4. @wrighty Etsy is the marketplace we make together.
  5. 5. Etsy Seller:AHeirloom
  6. 6. Etsy Seller:AHeirloom
  7. 7. Etsy Seller:AHeirloom
  8. 8. Etsy Seller:AHeirloom
  9. 9. Etsy Seller:AHeirloom
  10. 10. Etsy is Global Etsy Seller:WildandFreeDesigns
  11. 11. @wrighty Quick Stats
  12. 12. @wrighty In 2013, Etsy Sellers Made Over 1 Billion USD
  13. 13. @wrighty Etsy is Multi-Platform
  14. 14. APIv2
  15. 15. @wrighty The Good
  16. 16. @wrighty Kick Started Third-Party Community
  17. 17. @wrighty Powers Etsy Native Apps
  18. 18. @wrighty Serves Needs of Sellers
  19. 19. @wrighty The Bad
  20. 20. @wrighty Resources Mirror DB Schemas
  21. 21. @wrighty Client Dictates Complexity
  22. 22. REST Not Always Best Etsy Seller: GalaBorn
  23. 23. @wrighty Multiple Requests for one Client View
  24. 24. @wrighty Access Control Adds Complexity Etsy Seller: BlueRoseRetro
  25. 25. APIv3
  26. 26. @wrighty Domain Resources, not Row Resources
  27. 27. @wrighty Push Complexity to Server
  28. 28. Concurrency Etsy Seller: StudioLiscious
  29. 29. @wrighty Relax REST Constraints
  30. 30. Bespoke Etsy Seller: HouseofSeance
  31. 31. @wrighty Make Access Control Explicit
  32. 32. Perspectives Etsy Seller: urbanantique
  33. 33. @wrighty Perspectives Encapsulate who is making a call Abstracts authentication Three main ones: Public, Member & Shop
  34. 34. API-First
  35. 35. Database Business Logic Web ControllerAPIv2 Business Logic
  36. 36. Database APIv3 Business Logic
  37. 37. @wrighty Thanks!

×