La guía definitiva para en tender qué es una API

La guía definitiva para en tender qué es una API

En el post de hoy te traigo una pequeña guía para iniciados, donde podrás descubrir qué es una API, para qué sirve y como las empresas lo están usando hoy en día.

Cierto es que, desde el nacimiento de internet, han existido diferentes iniciativas vinculadas al desarrollo de servicios, donde los interfaces o comunicadores con el resto del mundo eran la clave para el uso de este. Alguno de ellos, como lo son los web services, hablaremos un poco más adelante en este post.

Pero qué es una API, si tuviese que buscar una manera de explicar a los no iniciados en el mundo de las TIC, intentaría buscar alguna analógica del miundo real.

Después de pensar mucho, la única que se me viene a la cabeza sería la siguiente. Una API no deja de ser un conjunto, formado por un manual o instrucciones, que nos indica cómo funciona el producto o servicio que hemos comprados y el mando a distancia que nos deja realizar dichas funciones. En el caso de los productos de consumo, el servicio podría ser, por ejempo un video VHS ( jejeje, que viejo me siento al pronunciar este acrónimo) y la API sería el tándem formado por el libro instrucciones más el mando a distancia.

Pero qué es realmente una API

API es el acrónimo de Application Programing Interface o la Interfaz para la Programación de Aplicaciones, en castellano. Según la definición que podemos encontrar en la Wikipedia, una API es una interfaz de programación de aplicaciones (API) que dispone de un conjunto de rutinas, estructuras de datos, clases de objetos y / o protocolos proporcionados por bibliotecas y / o servicios del sistema operativo para permitir la creación de aplicaciones.

Vamos lo que ya os he dicho hace un rato, un servicio, que dispone de un manual de instrucciones y un mando para utilizarlo.

Para qué sirve una API

Las APIs es una forma que disponen los desarrolladores de utilizar servicios ya creados por terceros, sin necesidad de tener que empezar a picar código desde cero, similar a las llamadas que se pueden realizar a librerías de algunos lenguajes de programación.

Por ejemplo, si estoy desarrollando una App para iOS no es necesario que desarrolle todas las funcionalidades por mí mismo, si no que usando las API públicas de iOS, me puedo ahorrar un montón de trabajo. Por ejemplo, utilizando Safari de modo embebido sin tener que desarrollar un browser desde cero o usando alguna otra de las funcionalidades de la API para utilizar las cámaras del iPhone, pudiendo capturar fotos desde la aplicación sin necesidad que programar nada, más allá de realizar llamadas a la misma.

Pero las APIs también nos permiten implementar otra serie de funciones como, por ejemplo, la implementación de los controles de acceso a la misma, restringiendo llamadas de determinados usuarios o permitiendo usar el servicio en función del tipo de privilegios que tengan para ello. Esto es algo que usamos en nuestro día a día cada vez que instalas una aplicación en tu teléfono móvil, la aplicación hace una serie de llamadas a los dispositivos hardware o piezas de código de iOS para poder por ejemplo, tener acceso a la localización de tu GPS; usar los contactos de tu agenda, permitir enviar mensajes de texto, …

Pero las APIs son también las que nos permiten hacer que servicios se conecten entre , hace unos meses escribí un artículo en el blog de @Movistar_PYMES, Con Tu Negocio, sobre IFTTT.

Para los que no lo conozcáis, IFTTT es el acrónimo en inglés de If This Then That, que podría traducirse como “si (ocurre) esto, entonces (haz) aquello”, una estructura muy habitual usada en las sentencias condicionales de cualquier lenguaje de programación, que permite ejecutar una acción (that) según una condición previa (this).

La principal ventaja de IFTTT es que conecta servicios web, usando las API de los diferentes proveedores, para realizar acciones de forma automática. Un ejemplo es conectar las principales redes sociales como Facebook, Twitter, LinkedIn, Flickr, Instagram, Tumblr, YouTube, con herramientas de productividad como Google Calendar, Gmail, Evernote, Dropbox, y con otros servicios interesantes para los negocios online como son Blogger, RSS Feed, WordPress, Buffer o Hootsuite.

Qué tipos de API podemos encontrar

Hay muchos tipos de APIs, las más comunes o extendidas en cuanto a su uso son los Web Services, las cuales proporcionan una interfaz para aplicaciones web o aplicaciones que necesitan conectarse entre sí para comunicarse, ya sea a través de Internet, un bus de mensajería o cualquier otro protocolo de comunicación.

Hagamos una prueba, si haces una búsqueda en Google poniendo, “public API”, veras cientos de resultado. Mirando entre los primeros seguramente encuentres un enlace a GitHub donde dispones de un glosario con cientos de referencias a enlaces de API públicas, ordenadas inclusive por diferentes temáticas, como por ejemplo animales, artes y ciencias, antimalware, calendario, negocios, etc.

Existen otros tipos de API web, que en lugar de usar el protocolo de comunicación HTTP, el protocolo más utilizado en la web. Utilizan otros como SOAP, REST o XML-RPC.

Mencionar que los Web Services están estandarizados por el W3C (
World Wide Web Consortium), y los definen como “un sistema de software diseñado para soportar la interacción interoperable de máquina a máquina a través de una red”.

Pero que tengo que tener en cuenta a la hora de crear una API

  1. ¿Qué va a poder hacer mi usuario hacer a través de ellas?, debes de pensar que acciones vas a permitir realizar a través de la API contra el servicio que expones.
  2. ¿Qué beneficio obtendrá en su uso?, normalmente muchos proveedores exponen muchos más servicios accesibles para consumir a través de la API, comparado con los que están disponibles en el interfaz de usuario.
  3. ¿Cómo la voy a exponer?, ¿a través de end points públicos o privados?, ¿sólo para aquellos usuarios que contraten el servicio o para cualquiera?.
  4. ¿Cómo la voy a securizar?, ¿el acceso a la misma va a ser a través de tokens?. 
  5. Gestión de accesos, puedes crear tu propio LDAP de usarios para gestionar los accesos o usar  servicios de terceros como OAuth para autenticarse sin necesidad de custodiar password de usuarios.
  6. Y por último, pero no menos importante, como la voy a gobernar o gestionar. Para ello deberás de disponer de manuales de uso, pero a su vez de verás tener en cuenta y gestionar el ciclo de vida de esta. Así como la API vaya evolucionando, deberás crea diferentes versiones de esta, con su correspondiente documentación e inclusive soporte, la quieras monetizar o no. 

Espero que esta pequeña guía, te haya ayudado a entender algo mejor que es una API y para que sirve, lo creas o no estamos rodeados de estas. Y en tu día a día, tú teléfono móvil, ordenador e inclusive cada vez más dispositivos conectados del hogar, hacen uso de estas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *