¿Cómo se lleva una API de buena a excelente?

Creo que las grandes API comparten estas características comunes:

Diseño intuitivo y sintaxis que los hace fáciles de usar, solucionar problemas y ampliar. Esta es una de las características más solicitadas de los API por los desarrolladores y fue mencionada en una presentación dada por Joshua Bloch, ingeniero de software principal de Google. Una copia de su presentación está disponible en el enlace al final de esta publicación.

Número simplificado y mínimo de métodos para completar las tareas principales. Esto hace que una API sea más fácil de extender y aprender con el tiempo, agregando aún más valor a su diseño inicial.
Excelente documentación Las mejores API tienen todas las interfaces, métodos, clases, constructores y parámetros definidos además de las excepciones clave. Esto incluye definir la sintaxis y los parámetros para E / S además de definir los límites de comunicación.
Capacidad para gestionar llamadas duplicadas sin generar resultados duplicados, o el apoyo de la idempotencia. Esta es la capacidad de completar cálculos idénticos simultáneamente y aún entregar el mismo resultado correcto.
Cumple con los estándares relevantes de programación e integración web. Esto incluye soporte para HTTP, HTML, XML y muchos otros estándares para la integración basada en la web y el desarrollo de aplicaciones.
Las bibliotecas de los clientes están bien documentadas y cumplen con los estándares de la industria específicos de la plataforma de desarrollo.
Gestión comunitaria sólida y una comunidad de programación activa que aporta su experiencia y conocimiento a la evolución de las API a lo largo del tiempo.
Soporte para seguridad avanzada de API mediante el uso de certificados SAML y X.509, además del cifrado SSL y XML.

Recursos de interés:

Cómo diseñar una buena API y por qué es importante, Joshua Bloch, ingeniero de software principal, Google
http://aarontgrogg.com/wp-conten…

Construyendo una gran API por Evan Cooke:
http://www.slideshare.net/twilio…

API abiertas: estado del mercado de John Musser:
http://www.slideshare.net/jmusse…

Quizás no haya nada mejor que la presentación de Joshua Bloch sobre cómo diseñar una buena API y por qué es importante: http://lcsd05.cs.tamu.edu/slides

A decir verdad, buscaría utilizar un servicio API administrado como Layer7 (API Management | Acceso móvil | SOA Governance | Cloud Integration).