![Page 1: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/1.jpg)
Getting Developers hooked on your API
@nico_g
![Page 2: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/2.jpg)
Nicolas Garnierself-taught developer@nico_g
@nico_g
![Page 3: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/3.jpg)
@nico_g
~15,000 APIs(ProgrammableWeb)
![Page 4: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/4.jpg)
@nico_g
A great product sells itself
![Page 5: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/5.jpg)
@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](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/6.jpg)
@nico_g
One thing in common
![Page 7: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/7.jpg)
@nico_g
US!One thing in common
![Page 8: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/8.jpg)
@nico_g
Developer Experience
code application
![Page 9: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/9.jpg)
@nico_g
code application
Developer Experience
UX
![Page 10: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/10.jpg)
@nico_g
code application
Developer Experience
DX
![Page 11: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/11.jpg)
Developer Experience matters
Journey to developer Adoption
@nico_g
![Page 12: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/12.jpg)
@nico_g
Simplicity
What are we looking for as users?
![Page 13: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/13.jpg)
@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](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/14.jpg)
@nico_g
Is it easy to understand?
Error 1543bis
![Page 15: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/15.jpg)
@nico_g
Is it adapted to my audience?
![Page 16: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/16.jpg)
@nico_g
SOAPREST
Hypermedia
GraphQL FalcorJS
![Page 17: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/17.jpg)
@nico_g
What really matters is
affordance & consistency
![Page 18: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/18.jpg)
@nico_g
Affordance
/pets/$ID
![Page 19: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/19.jpg)
@nico_g
Affordance
GET /pets/$ID
![Page 20: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/20.jpg)
@nico_g
Consistency
POST /foods
![Page 21: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/21.jpg)
@nico_g
API designers != end users
API
![Page 22: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/22.jpg)
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](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/23.jpg)
@nico_g
timed
ifficulty
supportdev
Bad DX
![Page 24: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/24.jpg)
First impression matters
@nico_g
Documentation
![Page 25: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/25.jpg)
@nico_g
Documenting your API iseasy
![Page 26: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/26.jpg)
@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](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/27.jpg)
@nico_g
![Page 28: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/28.jpg)
@nico_g
![Page 29: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/29.jpg)
READING DOCS
@nico_g
LOL
![Page 30: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/30.jpg)
⌘C + ⌘V@nico_g
PRAG-MA-TISM
![Page 31: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/31.jpg)
@nico_g
Don’t forget anyone
Code snippets
![Page 32: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/32.jpg)
![Page 33: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/33.jpg)
@nico_g
Don’t forget anyone
Code snippets User guides
![Page 34: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/34.jpg)
@nico_g
![Page 35: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/35.jpg)
@nico_g
Don’t reinvent the wheel
apiary
readme.io
slate
![Page 36: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/36.jpg)
Don’t reinvent the wheel
![Page 37: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/37.jpg)
@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](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/38.jpg)
![Page 39: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/39.jpg)
while (true) {repeat();
}
@nico_g
![Page 40: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/40.jpg)
@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](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/41.jpg)
@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](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/42.jpg)
@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](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/43.jpg)
@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](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/44.jpg)
@nico_g
Paw-some!
![Page 45: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/45.jpg)
@nico_g
![Page 46: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/46.jpg)
@nico_g
![Page 47: Getting developers hooked on your API - Nicolas Garnier - Codemotion Amsterdam 2016](https://reader031.vdocument.in/reader031/viewer/2022030305/58729f081a28ab07208b5585/html5/thumbnails/47.jpg)
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