Your SlideShare is downloading. ×
API-Driven Development for Both Ends
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

API-Driven Development for Both Ends

722
views

Published on

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

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

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
722
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. API-Driven Development for both ends jakub@apiary.io
  • 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. 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. Overview • Why are APIs different? • Why are APIs bad? • How to fix that? * APIs = REST/HTTP APIs
  • 5. #noBackend? API is the border checkpoint, the DMZ between frontend and backend
  • 6. Jakub Nesetril • backend dev • frontend dev • founder of Apiary
  • 7. Apiary • API Design, Documentation & Testing Tools • Grown from 0 to 35,000 APIs since last year • Largest API community worldwide
  • 8. What is an API?
  • 9. API is UI to Data
  • 10. API is UI to Data
  • 11. API is UI to Data User Experience
  • 12. API is UI to Data Design User Experience
  • 13. API is UI to Data Emotions Design User Experience
  • 14. API is UI to Data Emotions Design User Experience Subjective
  • 15. API is UI to Data Emotions Design User Experience Subjective Culturally Dependent
  • 16. API is UI to Data Emotions Simplicity Design User Experience Subjective Culturally Dependent
  • 17. API is UI to Data Emotions Simplicity Design Productivity User Experience Subjective Culturally Dependent
  • 18. API is UI to Data Emotions Conversion Rates Simplicity Design Productivity User Experience Subjective Culturally Dependent
  • 19. API is UI to Data Emotions Conversion Rates Simplicity Design Productivity User Experience Usability Studies Subjective Culturally Dependent
  • 20. API is UI to Data Emotions Conversion Rates Simplicity Design Productivity User Experience Hackathons Subjective Culturally Dependent
  • 21. Great! Make good design!
  • 22. No dev thinks HIS design sucks!
  • 23. Provider Consumer
  • 24. Backend Frontend
  • 25. Java Backend Rails Scala Erlang Frontend
  • 26. Validation Uptime Java Maintenance Backend Caching Rails Scala Security Versioning Erlang Frontend
  • 27. Validation Uptime Java Maintenance Backend Caching Rails Scala Security jQuery Frontend ObjC Versioning Erlang Hoodie
  • 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. So?
  • 30. Traditional API Development
  • 31. Design Implementation Customer
  • 32. Design Implementation Customer
  • 33. 3-6 weeks Design 3-6 months Implementation Customer
  • 34. Problem: API providers don't understand API consumers (and vice versa)
  • 35. Want good APIs? ! Empower the Frontend
  • 36. Let's turn that on it's head
  • 37. Design Implementation Customer
  • 38. Design Customer Implementation
  • 39. Design Customer Implementation
  • 40. Frontend developer designs an API
  • 41. Frontend developer builds #noBackend app
  • 42. Backend developers get implementation specs (in form of tests)
  • 43. API Blueprint • human-readable & human-writable • based on Markdown, you already know it • structured reasoning about APIs
  • 44. demo
  • 45. What did we just see?
  • 46. Concurrent Development Frontend Contract Backend
  • 47. Concurrent Development Frontend mocks Contract Backend
  • 48. Concurrent Development Frontend mocks Contract tests Backend
  • 49. What happens when you're offline?
  • 50. demo
  • 51. Summary
  • 52. Involve the frontend
  • 53. Collaborate
  • 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. Thank You @apiaryio http://apiary.io/ ! @jakubnesetril
  • 56. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/apidriven-development

×