Your API Sucks


Published on

We've learned the hard way that websites need great user experiences to survive. So why aren't we being this aggressive with API design? What are the deeper reasons behind why REST killed SOAP? And why aren't all API providers thinking about the truly important issues, making APIs that will be used by people? Come for the hall of shame and stay for the wake-up call.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Creative Commons Attribution-Share Alike 3.0 United States License
  • This is one of my favorite design quotes. We use it all the time as we plan out Apigee’s web interface.
  • This book has been out for over 10 years now. How many of you have read this?It’s not rocket surgery.What is usability? It’s making things easier.Heroku making deployment easier.Facebook making pubsub easier.GitHub making version control easier.
  • The infamous butterfly ballots.
  •’s Finches
  • Design. Brand identity. Inviting. A place you’d prefer to be.SyntaxhighlightingList of methodsSimplified
  • Here’s an example SOAP request
  • Easier. Make it. easier.
  • Seriously. Why?
  •, developers, developers, developers
  • If you build it, will they come?
  • Try before you buy.No barrier to engaging.What does this mean for APIs?
  • to get a keyWait to be acceptedFigure out authenticationOAuth 1 vOAuth 2EULA storyReference call (public_timeline) no auth req’d. Salesforce example. Twitter public timeline
  • them riding asap.Constructionism,seymourpapert. Related to constritivism. construct mental models to understand the world around themThe experience has continuity and interaction.Continuity is the idea that the experience comes from and leads to other experiences, in essence propelling the person to learn more. Interaction is when the experience meets the internal needs or goals of a person.
  • Author of Gowalla Tools, a very popular sdk, put it on hiatus.
  • API request is a transaction between two parties. If you look at it from one or the other.Just because you’re the person who’s implemented something doesn’t mean you’re the best person to explain how it works. For one, people are going to use it in ways you didn’t intend, just like the do with websites.
  • Make it as easy as possible for people to use your API.
  • Rate limit policies and remaining
  • There is no one way. Have an opinion. Be passionate about this.How simple API design patterns facilitate adoption, a la Twitter Grandma test.Just because devs are smart doesn’t mean you can make it complicatedError simulationoauthpocalypseGiving enough awayUseless response codesGet when you should putThe Fox Sports Bar TestPoor experience is opportunity
  • Your API Sucks

    1. 1. Your API Sucks<br />Why developers hang up and how to stop that.<br />Marsh Gardiner @earth2marsh<br />Product Manager, Apigee <br />
    2. 2. THIS TALK<br />IN A NUTSHELL<br /><ul><li>User experience wins
    3. 3. API users = developers
    4. 4. Developer experiences (generally) suck
    5. 5. But they don’t have to…</li></li></ul><li>Simple things should be simple.<br />Complex things should be possible.<br />— Alan Kay<br />
    6. 6.
    7. 7.
    8. 8.
    9. 9.
    10. 10.
    11. 11.
    12. 12.
    13. 13.
    14. 14.
    15. 15.
    16. 16. POST /InStock HTTP/1.1<br />Host:<br />Content-Type: application/soap+xml; charset=utf-8<br />Content-Length: 299<br /><?xml version="1.0"?><br /><soap:Envelopexmlns:soap=""><br /> <soap:Header><br /> </soap:Header><br /> <soap:Body><br /> <m:GetStockPricexmlns:m=""><br /> <m:StockName>IBM</m:StockName><br /> </m:GetStockPrice><br /> </soap:Body><br /></soap:Envelope><br />
    17. 17. Why REST is winning:<br /><br />
    18. 18.
    19. 19. Why did you<br />build an API?<br />
    20. 20.
    21. 21.
    22. 22. Why is this so hard?<br />
    23. 23. Why does Freemium work?<br />
    24. 24.
    25. 25.
    26. 26.
    27. 27. Do it better<br />
    28. 28. Your API is a product.<br />Treat it that way.<br />Your developers are your customers.<br />
    29. 29.
    30. 30.
    31. 31. Your engineers may be great at writing the code behind your API. <br />Are they great at writing API docs? <br />
    32. 32. “Because you can,” doesn’t mean, “you should.”<br />Good visual design involves restraint. <br />Good code involves restraint. <br />Good API design involves restraint.<br />
    33. 33.
    34. 34. Opacity is inscrutable. (Also, unforgivable.)<br />Give devs the information they need to succeed.<br />
    35. 35.
    36. 36.
    37. 37. Put yourself in their shoes.<br />
    38. 38. THANK YOU<br />Questions, examples, and ideas to:<br />@earth2marsh<br /><br />