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

56
The “I” is for Interaction! Applying a Developer-Centric Approach to API Design Ronnie Mitra Principal API Architect - Europe Layer 7 API Academy

Upload: ca-api-management

Post on 21-Aug-2015

2.332 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

The “I” is for Interaction!Applying a Developer-Centric Approach to API Design

Ronnie MitraPrincipal API Architect - EuropeLayer 7 API Academy

Page 2: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra
Page 3: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

API Management

virtual cloudon-premise

Page 4: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

API Academy

Mike Amundsen Ronnie Mitra

Page 5: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

The “I” is for Interaction!

Page 6: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Ok. It isn’t really.

Page 7: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

InteractionDesign

Page 8: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

UsabilityHuman-Computer-Interaction

User Experience DesignGoal Oriented Design

Page 9: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

A user-centric view of design.

Page 10: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

http://www.flickr.com/photos/58754750@N08/5541472392/

Page 11: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Well designed products are easier to use.

Page 12: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Good design matters for Web APIs too.

Page 13: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

“Frictionless” integrationHigh rates of adoptionLow cost integration

We want:

Page 14: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Focus on the developer experience(dx)

Page 15: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Portal

API

Page 16: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Why is this difficult?

Page 17: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Reason #1We project our own perspective.

Page 18: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra
Page 19: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra
Page 20: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Your code is not your API.Your data model is not your API.

Page 21: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Reason #2We project our own biases.

Page 22: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Never use SOAP?Why?

Page 23: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Consider keyboards…

Page 24: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

http://www.flickr.com/photos/yvettemn/139890573/

Page 25: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

http://www.flickr.com/photos/jonathanpberger/7126054997/

Page 26: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

http://www.flickr.com/photos/novemberborn/286773981/

Page 27: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

It doesn’t matter that you don’t like SOAP.

Page 28: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

What matters is what your developer base thinks!

Page 29: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Reason #3We make bad assumptions.

Page 30: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

API publishers are also developers.

Page 31: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Reason #4We lack the time and money

required for design

Page 32: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

“Best practices”, patterns and standards become shortcuts

Page 33: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Am I RESTfull enough?

Page 34: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

So, how can we do better?

Page 35: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Developer-centric design requires effort and diligence.

Page 36: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra
Page 37: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra
Page 38: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Design with the developer in mind.

Page 39: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Ask them.

Page 40: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

• Interviews• Surveys• Listen (blogs, presentations,

tweets)

Page 41: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

"If I had asked people what they wanted, they would have said faster horses.“ – Henry Ford?

Page 42: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

• Observe• Prototype• Historical Data

Page 43: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Consider all aspects of the DX:

RegistrationSecurity

TroubleshootingLearning

Interface Style

Page 44: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Registration

Lazy RegistrationSocial IntegrationPersonalization

Page 45: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Development Activity Cycle

1. Learn2. Code3. Implement4. Test 5. Fix

Page 46: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Portal

API

Learn

Code

Test

Page 47: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

API

Learn

Test

Page 48: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

API explorers and “live documentation” can shorten the

gap between visibility and feedback.

Page 49: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Interfaces

I use GET to write to your API?

Page 50: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Interfaces

Hypermedia can provide:AffordancesConstraintsFeedback

API

Page 51: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Security

Needs to be considered from a developer point of view

OAuth 2 is easier to implement than OAuth 1

(for your developers)

Page 52: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

1. Identify a Target Audience2. Learn about the audience3. Make API design choices that

are developer-centric4. Prototype and get feedback5. Iterate

How?

Page 53: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Focus on the interactions that take place, rather than the interfaces

we expose

Page 54: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

Great API design can thrive in a developer-centric environment

Page 55: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

The “I” is for Interaction!Applying a Developer-Centric Approach to API Design

Ronnie MitraPrincipal API Architect - EuropeLayer 7 API Academy

Page 56: Applying a Developer-Centric Approach to API Design from API Architect Ronnie Mitra

www.apiacademy.co