harmony in api design

Post on 12-Jan-2015

1.215 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

My talk at API Strategy & Practice in San Francisco

TRANSCRIPT

Harmony in API Design

jakub@apiary.io

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

top related