Las interfaces de programación de aplicaciones o (application programming interfaces), son un elemento vital del desarrollo de sistemas de software, y aunque desde casi siempre han existido entre nosotros, no es sino hasta últimamente que la "popularidad" de esta palabra ha aumentado gracias a los servicios web y las aplicaciones móviles.

La clave para entender qué es una API radica en entender qué es una interfaz: Podemos ver una interfaz como un contrato entre dos partes, en el cual una establece las condiciones de la relación, en este caso, la interfaz especifica qué métodos, funciones, propiedades, recursos… estarán disponibles para ser usados.

Este tipo de contratos se establecen básicamente para lo mismo que en la vida cotidiana: para solicitar los servicios de un tercero y realizar una acción que sería de otro modo, tedioso, complicado. Para poner un ejemplo: tan solo basta con recordar cómo funciona la computadora: con código máquina, te imaginas lo tedioso (y tardado) que sería escribir un programa actual con código máquina… entonces nosotros no tenemos mas que agradecer a la gente que se dispuso a crear lenguajes como el ensamblador que no es más que una especie de interfaz para interactuar con la computadora, sin necesidad de escribir (y seguramente equivocarnos) si usáramos código máquina. Así mismo, podemos ver lenguajes de alto nivel como interfaces hacia el procesador.

Seguramente hasta personas no tienen conocimiento de programación tienen una pequeña noción del lo que es la interfaz interfaz, con tan solo ver algunas de las aplicaciones existentes en tu escritorio o que usas en el celular, en ellas existe interfaz grafica de una app que es un medio de interacción que permite acceder a los recursos de una computadora a través mediante un medio "amigable" para el usuario. De la misma manera en que facebook permite consultar la lista de amigos de una persona con tan solo llamar a una dirección http. O de la misma manera que Java permite abrir un Socket de tu computadora sin necesiddad de que tu te peleees con puertos, direcciones MAC.

El concepto de API es muy usado además en la programación orientada objetos, ya que mediante las APIS se puede encapsular el funcionamiento de un objeto y permitir que con este se interactua a través de un set predefido de operaciones. Como es el caso de los métodos disponibles en cualquier clase de Java, C# y demás. Es más, cualquier librería, framework o servicio que uses cuenta con una API que nos permite acceder a sus recursos e interactuar con ella.

Para ejemplos de interfaz tenemos la API de Twitter, la cual se invoca a través de peticiones HTTP. La API de Java y como ejemplo estrella la API de YouTube tiene una API, que me permite crear una aplicación en C# que suba un video como el que acabas de ver.

En el video hago mención a un sitio web que almacena referencias a muchísimas API, el sitio es este https://www.programmableweb.com