your api sucks
DESCRIPTION
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.TRANSCRIPT
![Page 1: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/1.jpg)
Your API Sucks
Why developers hang up and how to stop that.
Marsh Gardiner @earth2marshProduct Manager, Apigee
![Page 2: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/2.jpg)
• User experience wins• API users = developers• Developer experiences (generally) suck• But they don’t have to…
IN A NUTSHELLTHIS TALK
![Page 3: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/3.jpg)
Simple things should be simple.
Complex things should be possible.
— Alan Kay
![Page 4: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/4.jpg)
![Page 5: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/5.jpg)
![Page 6: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/6.jpg)
![Page 7: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/7.jpg)
![Page 8: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/8.jpg)
![Page 9: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/9.jpg)
![Page 10: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/10.jpg)
![Page 11: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/11.jpg)
![Page 12: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/12.jpg)
![Page 13: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/13.jpg)
![Page 14: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/14.jpg)
POST /InStock HTTP/1.1Host: www.example.orgContent-Type: application/soap+xml; charset=utf-8Content-Length: 299 <?xml version="1.0"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> <soap:Header> </soap:Header> <soap:Body> <m:GetStockPrice xmlns:m="http://www.example.org/stock"> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body></soap:Envelope>
![Page 15: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/15.jpg)
http://api.twitter.com/1/statuses/public_timeline.json
Why REST is winning:
![Page 16: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/16.jpg)
![Page 17: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/17.jpg)
Why did youbuild an API?
![Page 18: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/18.jpg)
![Page 19: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/19.jpg)
![Page 20: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/20.jpg)
Why is this so hard?
![Page 21: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/21.jpg)
Why does Freemium work?
![Page 22: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/22.jpg)
![Page 23: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/23.jpg)
![Page 24: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/24.jpg)
![Page 25: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/25.jpg)
Do it better
![Page 26: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/26.jpg)
Your API is a product.
Treat it that way.Your developers are your customers.
![Page 27: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/27.jpg)
![Page 28: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/28.jpg)
![Page 29: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/29.jpg)
Your engineers may be great at writing the code behind your API.
Are they great at writing API docs?
![Page 30: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/30.jpg)
“Because you can,” doesn’t mean, “you should.”
Good visual design involves restraint. Good code involves restraint. Good API design involves restraint.
![Page 31: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/31.jpg)
![Page 32: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/32.jpg)
Opacity is inscrutable. (Also, unforgivable.)
Give devs the information they need to succeed.
![Page 33: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/33.jpg)
![Page 34: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/34.jpg)
![Page 35: Your API Sucks](https://reader035.vdocuments.site/reader035/viewer/2022062312/554f5e11b4c9058a148b45cd/html5/thumbnails/35.jpg)
Put yourself in their shoes.