- 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