Refresh London - Designing an API for developer happiness

29
DESIGNING AN API FOR DEVELOPER HAPPINESS

Transcript of Refresh London - Designing an API for developer happiness

DESIGNING AN API FOR DEVELOPER HAPPINESS

[email protected] @GSHUTLER

WHY DOES THIS MATTERONBOARDING IS VITAL

SHARING OUR EXPERIENCETHINGS THAT HAVE WORKED

THINGS THAT HAVEN'T

WHAT WE'RE DOING NEXT

GOOD DOCUMENTATIONSTART LANGUAGE AGNOSTIC

HIERARCHY OF API HAPPINESS

ENDPOINTEXAMPLELIBRARY FOR MESIMILAR LIBRARYDOCUMENTATION

MINIMISE TTFRREMOVE ROADBLOCKS

REQUEST JOURNALRECORD EVERY REQUEST

IDEMPOTENCYUPSERT AND DELETE

STANDARDSTHE WORLD DOESN'T NEED MORE WHEELS

UNDERSTAND CONTEXTWHAT DO YOUR CLIENTS KNOW

NON-BREAKING CHANGESNEVER BREAK EXISTING CODE

PREFIXED IDSVISUALLY TELL WHAT AN ID IS FOR

567236000909002

N23KJNWRW2

JSDFJKSN234

ACC_567236000909002

PRO_N23KJNWRW2

CAL_N23KJNWRW2_JSDFJKSN234

CONFRONT UNHAPPY PATHSENCOURAGE THEM TO BE HANDLED

RATE LIMITSHAVE THEM FROM DAY ONE

SMART PUSH NOTIFICATIONSDON'T TELL ME WHAT I KNOW

DOG FOODINGUSE YOUR OWN API

RECOGNISE PLACEHOLDERSGUIDE COPY AND PASTE

ALPHA CHANNELRELEASE EARLY TO PEOPLE WHO ASK

STATUS PAGETELL PEOPLE IT'S YOUR FAULT

AVOID CLEVER DEFAULTSPRINCIPLE OF LEAST SURPRISE

DELAYING LIBRARIESWRITING CODE IS FRICTION

BETTER ERRORSBE AS HELPFUL AS POSSIBLE

BETTER GUIDANCEHELP THEM BE AWESOME

MORE EXAMPLESCOPY AND PASTE TO SUCCESS

PRODUCTION MONITORINGWHAT'S HAPPENING

[email protected]

@GSHUTLER