Integration (Apps)
Authentication
OAUTH 1.0a
Session
API Key (Http basic - secret key passed into username, no password)
Data Formats
JSON
XML
API
Pagination
Error Handling
System
Rate limiting
Documentation
Technical Implementation Manual
Dynamic, explorable documentation (http://swagger.io/)
Sample client program
curl examples, atleast REQUEST/RESPONSE examples
Integration Points
REST API
SOAP API
Web Interactions using postMessage()?
Versioning
changelog for API
version in the URL.
How to manage change
Needed Improvements
More consistent use of HTTP methods
More consistent data modelling
Expanding through extra parameters (relations)
Consistent naming and url structure
What to do about SOAP API
Resources:
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
https://stripe.com/docs/api#intro
https://docs.box.com/docs/oauth-20
https://www.etsy.com/developers/documentation/getting_started/api_basics