Your API Sucks
Upcoming SlideShare
Loading in...5
×
 

Your API Sucks

on

  • 9,124 views

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 ...

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.

Statistics

Views

Total Views
9,124
Views on SlideShare
6,559
Embed Views
2,565

Actions

Likes
12
Downloads
115
Comments
0

13 Embeds 2,565

http://blog.apigee.com 2261
http://apigee.com 123
https://blog.apigee.com 116
http://mktg-dev.apigee.com 18
http://storify.com 17
http://mktg-new.local 9
http://mktg-dev.wearepropeople.md 6
http://lanyrd.com 5
https://twitter.com 3
http://twitter.com 2
http://blog.sonoasystems.com 2
http://translate.googleusercontent.com 2
http://www.afterjohn.appspot.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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.
  • http://www.businessinsider.com/why-tumblr-is-kicking-posterous-ass-2010-1
  • http://www.csuchico.edu/~curban/DarwinSP2002Phil108.htmDarwin’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?
  • http://www.flickr.com/photos/programmerman/2315566040/Developers, developers, developers, developers
  • If you build it, will they come?
  • Try before you buy.No barrier to engaging.What does this mean for APIs?
  • http://www.flickr.com/photos/psi_mon/3473153641/Signup 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
  • http://www.flickr.com/photos/chdot/2978611346/
  • http://www.flickr.com/photos/35034348080@N01/393214858/Get 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.http://gowallatools.com/api/
  • 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.
  • http://developer.truveo.com/methodJSON.php?name=truveo.videos.getVideos
  • Rate limit policies and remaining
  • http://app.apigee.com/console/apigee-console-snapshots-1291179600000_3c78ee51-8a85-4c40-b0c0-052c3d908e55/rendersnapshotview
  • http://developers.facebook.com/live_status
  • 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 Your API Sucks Presentation Transcript

  • Your API Sucks
    Why developers hang up and how to stop that.
    Marsh Gardiner @earth2marsh
    Product Manager, Apigee
  • THIS TALK
    IN A NUTSHELL
    • User experience wins
    • API users = developers
    • Developer experiences (generally) suck
    • But they don’t have to…
  • Simple things should be simple.
    Complex things should be possible.
    — Alan Kay
  • POST /InStock HTTP/1.1
    Host: www.example.org
    Content-Type: application/soap+xml; charset=utf-8
    Content-Length: 299
    <?xml version="1.0"?>
    <soap:Envelopexmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <soap:Header>
    </soap:Header>
    <soap:Body>
    <m:GetStockPricexmlns:m="http://www.example.org/stock">
    <m:StockName>IBM</m:StockName>
    </m:GetStockPrice>
    </soap:Body>
    </soap:Envelope>
  • Why REST is winning:
    http://api.twitter.com/1/statuses/public_timeline.json
  • Why did you
    build an API?
  • Why is this so hard?
  • Why does Freemium work?
  • Do it better
  • Your API is a product.
    Treat it that way.
    Your developers are your customers.
  • Your engineers may be great at writing the code behind your API.
    Are they great at writing API docs?
  • “Because you can,” doesn’t mean, “you should.”
    Good visual design involves restraint.
    Good code involves restraint.
    Good API design involves restraint.
  • Opacity is inscrutable. (Also, unforgivable.)
    Give devs the information they need to succeed.
  • Put yourself in their shoes.
  • THANK YOU
    Questions, examples, and ideas to:
    @earth2marsh
    marsh@apigee.com