What is an API?
API is UI to Data
API is UI to Data
API is UI to Data
User Experience
API is UI to Data
User Experience
Design
API is UI to Data
User Experience
Design
Emotions
API is UI to Data
User Experience
Design
Subjective
Emotions
API is UI to Data
User Experience
Design
Subjective
Emotions
Culturally Dependent
API is UI to Data
User Experience
Design
Subjective
Simplicity
Emotions
Culturally Dependent
API is UI to Data
User Experience
Design
Subjective
Simplicity
Emotions
Productivity
Culturally Dependent
API is UI to Data
User Experience
Design
Subjective
Simplicity
Conversion RatesEmotions
Productivity
Culturally Dependent
API is UI to Data
User Experience
Design
Subjective
Simplicity
Conversion RatesEmotions
ProductivityUsability Studies
Culturally Dependent
API is UI to Data
User Experience
Design
Subjective
Simplicity
Conversion RatesEmotions
Productivity
Culturally Dependent
Hackathons
Nobody thinks THEIR design sucks
Provider Consumer
Provider Consumer
Java
Rails
Scala
Erlang
Provider Consumer
Java
Rails
Scala
Erlang
jQuery
ObjCPHP
Provider Consumer
Uptime
Caching
Security
Maintenance
Versioning
Validation
Java
Rails
Scala
Erlang
jQuery
ObjCPHP
Provider Consumer
Uptime
Caching
Security
Maintenance
Versioning
ValidationCan It Be Done?
Debugging
Support
TTFHW
Example
Latency
Java
Rails
Scala
Erlang
jQuery
ObjCPHP
So?
1. Start With a Wireframe
• a design intent
• usually an API description language
• at Apiary we use API Blueprint
2. Involve Your Customers
• find your early-adopters before you code
• create an API mock that they can use
• fork/pull-request
3. Have Great Documentation
• generated automatically
• must be exhaustive and up-to-date
• your code is automatically tested; so must your documentation
4. Separate Contract from Implementation
Summary
• API is UI for Data & Interface between cultures
• Involve your customers early
• Automate
@apiaryio http://apiary.io/
!
@jakubnesetril
Thank You