So, you want to provide an API for the world to use?
design.canonical.com
design.canonical.com
The documents start stating some characteristics of Good APIs:
1. Easy to learn and memorize
2. Leads to readable code
3. Hard to misuse
4. Easy to extend
5. CompleteI've often said you can tell how good a code library is for an API based on how often the user needs to read the API documentation - ideally, they would never need to even read the API. After all, why have a code library if the users still need to look up the exact spelling and capitalization scheme of string parameters, or look up the numerical codes in return values?