Making APIs useable
From OpenWebFoo10
- Shouldn't need to read docs (principle of least surprise)
- Explorable API
- Click on a link and see results
- Realistic Data - facebook
- Personalization of API results data - facebook
- Easy oauth token generation (without the flow) - twitter
- Interactive SDK - bing
- Cut & Paste
- Document all parameters
- Have 1 easy thing - 1st thing
- Always have a publci endpoint
- API metrics based on my API key (e.g. Apigee)
- Web page to API mapping tool - how to get this data via the API
- Client libraries
- examples & tutorials
- Links to other people's libraries
- This is a bug button - be able to submit a bug report from the web interactive api that includes request/response/etc
- Show base string in detailed error messages
- Atom's extensibility & indirection complicates things
- Twurl and OAcurl style tools in client libraries
- Samples
- Social proof (e.g. Apple's mtv crib alike showcase of iphone millionaires)
- Behave like an open source project (committers, lists, IRC, code, feedback)
- Status pages, e.g. status.twitter.com
- Use familiar terminology
- Clear versioning policy
- Use cases & personas for APIs
- Optimize API for common patterns - batching and filtering
Exemplars
