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

Post on 09-Jan-2017

323 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Getting Developers hooked on your API

@nico_g

Nicolas Garnierself-taught developer@nico_g

@nico_g

@nico_g

~15,000 APIs(ProgrammableWeb)

@nico_g

A great product sells itself

@nico_g

You’re not the only one

People don’t know about you

Your onboarding is crappy

@nico_g

One thing in common

@nico_g

US!One thing in common

@nico_g

Developer Experience

code application

@nico_g

code application

Developer Experience

UX

@nico_g

code application

Developer Experience

DX

Developer Experience matters

Journey to developer Adoption

@nico_g

@nico_g

Simplicity

What are we looking for as users?

@nico_g

Is it easy to use?

GET /res

ourceH2B

?vo=true

@nico_g

Is it easy to understand?

Error 1543bis

@nico_g

Is it adapted to my audience?

@nico_g

SOAPREST

Hypermedia

GraphQL FalcorJS

@nico_g

What really matters is

affordance & consistency

@nico_g

Affordance

/pets/$ID

@nico_g

Affordance

GET /pets/$ID

@nico_g

Consistency

POST /foods

@nico_g

API designers != end users

API

What devs expect

@nico_gBeginner Expert

How does it work?

Performance design

PerformanceMany languages

API reference

CommunitySimplicty

Quickstart

Support

Wow effect Examples

@nico_g

timed

ifficulty

supportdev

Bad DX

First impression matters

@nico_g

Documentation

@nico_g

Documenting your API iseasy

@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

@nico_g

@nico_g

READING DOCS

@nico_g

LOL

⌘C + ⌘V@nico_g

PRAG-MA-TISM

@nico_g

Don’t forget anyone

Code snippets

@nico_g

Don’t forget anyone

Code snippets User guides

@nico_g

@nico_g

Don’t reinvent the wheel

apiary

readme.io

slate

Don’t reinvent the wheel

@nico_g

Don’t forget anyone

Code snippets User guides Sample app

while (true) {repeat();

}

@nico_g

@nico_g

{ }

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

</>

metadata

code generator

templates

@nico_g

{

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

"resource" : "send",

"action" : "POST",

"args" : [

…}

@nico_g

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

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

@nico_g

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

@nico_g

Paw-some!

@nico_g

@nico_g

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

@nico_g

Questions?ngarnier@mailjet.com

@nico_g

Thanks.ngarnier@mailjet.com

top related