applying a developer-centric approach to api design from api architect ronnie mitra

Post on 21-Aug-2015

2.332 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related