applying a developer-centric approach to api design from api architect ronnie mitra
TRANSCRIPT
The “I” is for Interaction!Applying a Developer-Centric Approach to API Design
Ronnie MitraPrincipal API Architect - EuropeLayer 7 API Academy
API Management
virtual cloudon-premise
API Academy
Mike Amundsen Ronnie Mitra
The “I” is for Interaction!
Ok. It isn’t really.
InteractionDesign
UsabilityHuman-Computer-Interaction
User Experience DesignGoal Oriented Design
A user-centric view of design.
http://www.flickr.com/photos/58754750@N08/5541472392/
Well designed products are easier to use.
Good design matters for Web APIs too.
“Frictionless” integrationHigh rates of adoptionLow cost integration
We want:
Focus on the developer experience(dx)
Portal
API
Why is this difficult?
Reason #1We project our own perspective.
Your code is not your API.Your data model is not your API.
Reason #2We project our own biases.
Never use SOAP?Why?
Consider keyboards…
http://www.flickr.com/photos/yvettemn/139890573/
http://www.flickr.com/photos/jonathanpberger/7126054997/
http://www.flickr.com/photos/novemberborn/286773981/
It doesn’t matter that you don’t like SOAP.
What matters is what your developer base thinks!
Reason #3We make bad assumptions.
API publishers are also developers.
Reason #4We lack the time and money
required for design
“Best practices”, patterns and standards become shortcuts
Am I RESTfull enough?
So, how can we do better?
Developer-centric design requires effort and diligence.
Design with the developer in mind.
Ask them.
• Interviews• Surveys• Listen (blogs, presentations,
tweets)
"If I had asked people what they wanted, they would have said faster horses.“ – Henry Ford?
• Observe• Prototype• Historical Data
Consider all aspects of the DX:
RegistrationSecurity
TroubleshootingLearning
Interface Style
Registration
Lazy RegistrationSocial IntegrationPersonalization
Development Activity Cycle
1. Learn2. Code3. Implement4. Test 5. Fix
Portal
API
Learn
Code
Test
API
Learn
Test
API explorers and “live documentation” can shorten the
gap between visibility and feedback.
Interfaces
I use GET to write to your API?
Interfaces
Hypermedia can provide:AffordancesConstraintsFeedback
API
Security
Needs to be considered from a developer point of view
OAuth 2 is easier to implement than OAuth 1
(for your developers)
1. Identify a Target Audience2. Learn about the audience3. Make API design choices that
are developer-centric4. Prototype and get feedback5. Iterate
How?
Focus on the interactions that take place, rather than the interfaces
we expose
Great API design can thrive in a developer-centric environment
The “I” is for Interaction!Applying a Developer-Centric Approach to API Design
Ronnie MitraPrincipal API Architect - EuropeLayer 7 API Academy
www.apiacademy.co