API-Driven Development for Both Ends

1,135
-1

Published on

Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/KqpQu2.

Jakub Nesetril presents a practical example of prototyping, developing and testing an application using a structured description of its API. Filmed at qconsf.com.

Jakub Nesetril is co-founder & CEO of Apiary, helping you make API design and documentation enjoyable. Prior to Apiary Jakub has gathered 10 years of experience leading API products and engineering teams in companies like GoodData and APN.

Published in: Technology

API-Driven Development for Both Ends

  1. 1. API-Driven Development for both ends jakub@apiary.io
  2. 2. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /api-driven-development InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month
  3. 3. Presented at QCon San Francisco www.qconsf.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  4. 4. Overview • Why are APIs different? • Why are APIs bad? • How to fix that? * APIs = REST/HTTP APIs
  5. 5. #noBackend? API is the border checkpoint, the DMZ between frontend and backend
  6. 6. Jakub Nesetril • backend dev • frontend dev • founder of Apiary
  7. 7. Apiary • API Design, Documentation & Testing Tools • Grown from 0 to 35,000 APIs since last year • Largest API community worldwide
  8. 8. What is an API?
  9. 9. API is UI to Data
  10. 10. API is UI to Data
  11. 11. API is UI to Data User Experience
  12. 12. API is UI to Data Design User Experience
  13. 13. API is UI to Data Emotions Design User Experience
  14. 14. API is UI to Data Emotions Design User Experience Subjective
  15. 15. API is UI to Data Emotions Design User Experience Subjective Culturally Dependent
  16. 16. API is UI to Data Emotions Simplicity Design User Experience Subjective Culturally Dependent
  17. 17. API is UI to Data Emotions Simplicity Design Productivity User Experience Subjective Culturally Dependent
  18. 18. API is UI to Data Emotions Conversion Rates Simplicity Design Productivity User Experience Subjective Culturally Dependent
  19. 19. API is UI to Data Emotions Conversion Rates Simplicity Design Productivity User Experience Usability Studies Subjective Culturally Dependent
  20. 20. API is UI to Data Emotions Conversion Rates Simplicity Design Productivity User Experience Hackathons Subjective Culturally Dependent
  21. 21. Great! Make good design!
  22. 22. No dev thinks HIS design sucks!
  23. 23. Provider Consumer
  24. 24. Backend Frontend
  25. 25. Java Backend Rails Scala Erlang Frontend
  26. 26. Validation Uptime Java Maintenance Backend Caching Rails Scala Security Versioning Erlang Frontend
  27. 27. Validation Uptime Java Maintenance Backend Caching Rails Scala Security jQuery Frontend ObjC Versioning Erlang Hoodie
  28. 28. Latency Validation Uptime Java Maintenance Backend Caching Rails Scala Security Versioning Erlang Can It Be Done? TTFHW jQuery Frontend Debugging ObjC Hoodie Example Support
  29. 29. So?
  30. 30. Traditional API Development
  31. 31. Design Implementation Customer
  32. 32. Design Implementation Customer
  33. 33. 3-6 weeks Design 3-6 months Implementation Customer
  34. 34. Problem: API providers don't understand API consumers (and vice versa)
  35. 35. Want good APIs? ! Empower the Frontend
  36. 36. Let's turn that on it's head
  37. 37. Design Implementation Customer
  38. 38. Design Customer Implementation
  39. 39. Design Customer Implementation
  40. 40. Frontend developer designs an API
  41. 41. Frontend developer builds #noBackend app
  42. 42. Backend developers get implementation specs (in form of tests)
  43. 43. API Blueprint • human-readable & human-writable • based on Markdown, you already know it • structured reasoning about APIs
  44. 44. demo
  45. 45. What did we just see?
  46. 46. Concurrent Development Frontend Contract Backend
  47. 47. Concurrent Development Frontend mocks Contract Backend
  48. 48. Concurrent Development Frontend mocks Contract tests Backend
  49. 49. What happens when you're offline?
  50. 50. demo
  51. 51. Summary
  52. 52. Involve the frontend
  53. 53. Collaborate
  54. 54. Source Code Format: https://github.com/apiaryio/api-blueprint Testing: https://github.com/apiaryio/dredd JS SDK: https://github.com/apiaryio/apiblueprint-sdk
  55. 55. Thank You @apiaryio http://apiary.io/ ! @jakubnesetril
  56. 56. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/apidriven-development

×