harmony in api design

31
Harmony in API Design [email protected]

Upload: jakub-nesetril

Post on 12-Jan-2015

1.215 views

Category:

Technology


3 download

DESCRIPTION

My talk at API Strategy & Practice in San Francisco

TRANSCRIPT

Page 1: Harmony in API Design

Harmony in API Design

[email protected]

Page 2: Harmony in API Design

What is an API?

Page 3: Harmony in API Design
Page 4: Harmony in API Design
Page 5: Harmony in API Design

API is UI to Data

Page 6: Harmony in API Design

API is UI to Data

Page 7: Harmony in API Design

API is UI to Data

User Experience

Page 8: Harmony in API Design

API is UI to Data

User Experience

Design

Page 9: Harmony in API Design

API is UI to Data

User Experience

Design

Emotions

Page 10: Harmony in API Design

API is UI to Data

User Experience

Design

Subjective

Emotions

Page 11: Harmony in API Design

API is UI to Data

User Experience

Design

Subjective

Emotions

Culturally Dependent

Page 12: Harmony in API Design

API is UI to Data

User Experience

Design

Subjective

Simplicity

Emotions

Culturally Dependent

Page 13: Harmony in API Design

API is UI to Data

User Experience

Design

Subjective

Simplicity

Emotions

Productivity

Culturally Dependent

Page 14: Harmony in API Design

API is UI to Data

User Experience

Design

Subjective

Simplicity

Conversion RatesEmotions

Productivity

Culturally Dependent

Page 15: Harmony in API Design

API is UI to Data

User Experience

Design

Subjective

Simplicity

Conversion RatesEmotions

ProductivityUsability Studies

Culturally Dependent

Page 16: Harmony in API Design

API is UI to Data

User Experience

Design

Subjective

Simplicity

Conversion RatesEmotions

Productivity

Culturally Dependent

Hackathons

Page 17: Harmony in API Design

Nobody thinks THEIR design sucks

Page 18: Harmony in API Design
Page 19: Harmony in API Design
Page 20: Harmony in API Design

Provider Consumer

Page 21: Harmony in API Design

Provider Consumer

Java

Rails

Scala

Erlang

Page 22: Harmony in API Design

Provider Consumer

Java

Rails

Scala

Erlang

jQuery

ObjCPHP

Page 23: Harmony in API Design

Provider Consumer

Uptime

Caching

Security

Maintenance

Versioning

Validation

Java

Rails

Scala

Erlang

jQuery

ObjCPHP

Page 24: Harmony in API Design

Provider Consumer

Uptime

Caching

Security

Maintenance

Versioning

ValidationCan It Be Done?

Debugging

Support

TTFHW

Example

Latency

Java

Rails

Scala

Erlang

jQuery

ObjCPHP

Page 25: Harmony in API Design

So?

Page 26: Harmony in API Design

1. Start With a Wireframe

• a design intent

• usually an API description language

• at Apiary we use API Blueprint

Page 27: Harmony in API Design

2. Involve Your Customers

• find your early-adopters before you code

• create an API mock that they can use

• fork/pull-request

Page 28: Harmony in API Design

3. Have Great Documentation

• generated automatically

• must be exhaustive and up-to-date

• your code is automatically tested; so must your documentation

Page 29: Harmony in API Design

4. Separate Contract from Implementation

Page 30: Harmony in API Design

Summary

• API is UI for Data & Interface between cultures

• Involve your customers early

• Automate

Page 31: Harmony in API Design

@apiaryio http://apiary.io/

!

@jakubnesetril

Thank You