getting developers hooked on your api - nicolas garnier - codemotion amsterdam 2016

49
Getting Developers hooked on your API @nico_g

Upload: codemotion

Post on 09-Jan-2017

323 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

Getting Developers hooked on your API

@nico_g

Page 2: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

Nicolas Garnierself-taught developer@nico_g

@nico_g

Page 3: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

~15,000 APIs(ProgrammableWeb)

Page 4: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

A great product sells itself

Page 5: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

You’re not the only one

People don’t know about you

Your onboarding is crappy

Page 6: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

One thing in common

Page 7: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

US!One thing in common

Page 8: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Developer Experience

code application

Page 9: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

code application

Developer Experience

UX

Page 10: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

code application

Developer Experience

DX

Page 11: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

Developer Experience matters

Journey to developer Adoption

@nico_g

Page 12: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Simplicity

What are we looking for as users?

Page 13: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Is it easy to use?

GET /res

ourceH2B

?vo=true

Page 14: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Is it easy to understand?

Error 1543bis

Page 15: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Is it adapted to my audience?

Page 16: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

SOAPREST

Hypermedia

GraphQL FalcorJS

Page 17: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

What really matters is

affordance & consistency

Page 18: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Affordance

/pets/$ID

Page 19: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Affordance

GET /pets/$ID

Page 20: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Consistency

POST /foods

Page 21: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

API designers != end users

API

Page 22: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

What devs expect

@nico_gBeginner Expert

How does it work?

Performance design

PerformanceMany languages

API reference

CommunitySimplicty

Quickstart

Support

Wow effect Examples

Page 23: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

timed

ifficulty

supportdev

Bad DX

Page 24: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

First impression matters

@nico_g

Documentation

Page 25: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Documenting your API iseasy

Page 26: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Swagger.ioTop-down

1. Create a Swagger definition of your API

2. Generate Server implementation

1. You already have a REST API

2. Generate the Swagger definition

Bottom-up

Page 27: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Page 28: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Page 29: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

READING DOCS

@nico_g

LOL

Page 30: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

⌘C + ⌘V@nico_g

PRAG-MA-TISM

Page 31: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Don’t forget anyone

Code snippets

Page 32: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016
Page 33: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Don’t forget anyone

Code snippets User guides

Page 34: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Page 35: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Don’t reinvent the wheel

apiary

readme.io

slate

Page 36: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

Don’t reinvent the wheel

Page 37: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Don’t forget anyone

Code snippets User guides Sample app

Page 38: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016
Page 39: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

while (true) {repeat();

}

@nico_g

Page 40: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

{ }

js-doc.md php-doc.md go-doc.md

</>

metadata

code generator

templates

Page 41: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

{

"description" : "This call sends an email.",

"resource" : "send",

"action" : "POST",

"args" : [

…}

Page 42: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

{{#filtersExist}}$filters = [{{#filters}} '{{name}}' => '{{value}}'{{#comma}},{{/comma}}{{/filters}}];{{/filtersExists}}

{{#argumentsExist}}$body = {{{body}}};{{/argumentsExist}}

Page 43: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

{ "Count": 1, "Data": [ { {{#args}} "{{name}}":"{{value}}"{{#comma}},{{/comma}} {{/args}} } ], "Total": 1}

Page 44: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Paw-some!

Page 45: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Page 46: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

Page 47: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

Developer Advocate

@nico_g

Connect with devs and help them make the most of your APIs

Share knowledge at conferences, meetups & hackathons

Design and provide sample code for developers to make their use of the API easy

work on fun projects to show what your API is capable of

Page 48: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

[email protected]

Page 49: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016

@nico_g

[email protected]