¿Qué debe saber un desarrollador antes de crear una API para un sitio web basado en la comunidad?

¿Qué deben saber los desarrolladores que diseñan e implementan una API para un sitio web basado en la comunidad antes de comenzar la codificación pesada? Hay un montón de APIs por ahí comoAPI de Twitter, API de Facebook, API de Flickr, etc. que son todos buenos ejemplos. Pero como tuconstruye tu propia API?

¿Qué tecnologías utilizarías? Creo que es una buena idea usarDESCANSO-como interfaz para que se pueda acceder a la API desde diferentes plataformas / clientes / navegadores / herramientas de línea de comandos (comorizo). Estoy en lo cierto? Sé que todos los principios del desarrollo web deben cumplirse como almacenamiento en caché, disponibilidad, escalabilidad, seguridad, protección contra posibles ataques de DOS, validación, etc. Y cuando se trata de API, algunas de las cosas más importantes son la compatibilidad con versiones anteriores y la documentación. ¿Me estoy perdiendo de algo?

Por otro lado, pensando desde el punto de vista del usuario (me refiero al desarrollador que usará su API), ¿qué buscaría en una API? Buena documentacion? Un montón de ejemplos de código?

Esta pregunta fue inspirada porJoel Coehoornla pregunta"¿Qué debe saber un desarrollador antes de construir un sitio web público?".

Esta pregunta es una wiki de la comunidad., así que espero que me ayuden a poner en un solo lugar todas las cosas que deben abordarse al crear una API para un sitio web basado en la comunidad.

Respuestas a la pregunta(1)

Su respuesta a la pregunta