ApiUna gran necesidad y oportunidad para una herramienta onlie es poder compartir sus potencia de una forma fácil con el resto de la comunidad de desarrolladores para que entre estos puedan usar los datos y capacidades de la aplicación para crear nuevos servicios. Por esto en la web 2.0 es algo totalmente necesario crear una API no solo para que otros servicios puedan acceder al nuestro si no para que inclusive nosotros podamos desarrollar y cambiar la parte gráfica de la aplicación independientemente del código que ofrece el servicio, ofreciendo las mejores prestaciones a los desarrolladores internos y externos. Por esto existen API abiertas que cualquiera puede utilizar y cerradas, que son propias y especificas dentro del servicio.

Ultimamente he visto q toda la web tiene de estas API y que cada una funciona casi de una forma, pero quería reunirme por escrito las igualdades que he ido viendo por si me puede servir en algún proyecto o para crear una propia en algun proyecto..

Al parecer entre varios estándar las web 2.0 prefieren con diferencia usar REST, la cual esta basada en la utilización de los métodos GET, POST, PUT y DELETE para el envío y recepción de información entre el usuario y el servidor, aun que este estándar no se cumple en la mayoría. El estándar primitivo indica que para subir algún archivo se debería usar PUT, y para borrarlos DELETE entre otras funciones reestablecidas, devolviendo siempre los datos en XML. Pero normalmente se usa un sistema con el que están más familiarizados el resto de desarrolladores.
Lo que se suele usar es un sistema mixto que recibe los datos por REST usando FriendlyUrl y GET, y utilizando POST para las modificaciones o para subir archivos.

Esto se suele realizar así por que es muy fácil utilizar un proxy o un programa en el servidor que realce una cache parcial de los datos si estos se pasan dentro de la URL de consulta, y es mas complejo si van acompañados de los datos en la misma cabecera…

En cuanto a las resupuestas de las aplicaciones lo que mas abunda son en XML. es un sistema facil y limpio que es facil de leer por todos los lenguajes en los que se quiera hacer el mashup. Pero el tiempo ha llevado a los creadores de API a poner alternativas con mejor rendimiento para los lenguajes estrella en la web, y casi todas se pueden traducir a jSon, un sistema para mostrar la información mucho mas liviano en aplicaciones JavaScript o PHP. Aunque para la utilización de los datos en PHP, debido a que solo desde la versión 5.0 esta soportado natívamente jSon, algunas API permiten obtener los datos convertidos por serialize() directamente para recogerlos con unserialize() de una forma rápida y liviana.

Como norma general no se suele utilizar la identificación del usuario o el almacenamiento de datos en cookies debido a que seria un obstáculo en algunos lenguajes como también lo seria para el almacenamiento en cache.

Algunos lenguajes de ejemplo:
APIs de las aplicaciones de google | code.google.com
APIs de las aplicaciones de Yahoo | developer.yahoo.com
API de vimeo | www.vimeo.com/api

Como ultimo apunte os dejo un enlace sobre como crear un motor de respuestas REST desde sematopia.com