Interfaz de Programación de Aplicaciones [API]

Este artículo pretende mostrar en términos generales que es una Interfaz de Programación de Aplicaciones –Application Programming Interface– (API)  y para qué se ocupan.

Una API es un conjunto de rutinas, protocolos y herramientas para crear aplicaciones de software. Existen desde 1960. En términos generales, es un conjunto de métodos de comunicación claramente definidos entre varios componentes de software. Una buena API facilita el desarrollo de un programa informático al proporcionar todos los componentes básicos, que luego el programador ocupa en sus desarrollos. Una API puede ser para un sistema basado en la WEB, sistema operativo, sistema de base de datos, hardware o biblioteca –librería– de software [1; 2].

Una especificación API puede tomar muchas formas, pero a menudo incluye especificaciones para rutinas, estructuras de datos, clases de objetos, variables o llamadas remotas.

Las API son la base de la revolución en la nube –cloud–, los dispositivos móviles y la Internet de las Cosas (IoT). La velocidad, la facilidad y la portabilidad de los datos intercambiados a través de API permiten todas estas innovaciones. Todo desde cómo ordenamos taxis, movemos dinero entre cuentas bancarias, vemos entretenimiento, compartimos momentos de vida a través de videos en nuestros canales de medios sociales y administramos o supervisamos nuestros hogares, todo sucede debido a las API. Las API están conectando el mundo de maneras que antes eran inimaginables.

¿Por qué las API son populares?

El crecimiento de la cantidad de API públicas disponibles para que los desarrolladores las  integren en sus propias aplicaciones ha crecido de manera sorprendente en los últimos 12 años.  De acuerdo con el sitio WEB ProgrammableWeb, que cataloga las API disponibles públicamente, a partir de 2017 hay más de 17,000 API públicas en producción. Esto está en contraste con el casi cero disponibles en 2005.

Las API demostraron ser el canal de datos perfecto para dispositivos móviles y para IoT, debido a la naturaleza de su implementación liviana y a la simplicidad de su formato de intercambio de datos. Una API es una aplicación bastante pequeña del lado del servidor, a veces implementada como un micro-servicio, que puede escribirse en cualquier cantidad de lenguajes de programación y hospedarse en varios tiempos de ejecución. Las API usan el transporte HTTP/S muy familiar para enviar datos a su cliente llamante.

El formato predeterminado para el intercambio de datos en una API se conoce como JavaScript Serial Object Notation, o JSON. JSON es una forma muy compacta y legible para los humanos de representar los datos de una manera independiente de la implementación. Todo esto quiere decir que las cargas JSON pueden ser analizadas por los clientes que llaman, de una manera muy rápida y eficiente con una pequeña sobrecarga de rendimiento.

El diagrama siguiente ilustra el rol que juegan las API, lo que hace posible conectar fácilmente diferentes fuentes de datos y habilitar la cadena de valor digital.

APIs

Diferentes Tipos de API

Resumiendo, una interfaz de programa de aplicación (API) es un conjunto de rutinas, protocolos y herramientas para crear aplicaciones de software. Básicamente, una API especifica cómo deben interactuar los componentes de software. Además, las API se utilizan al programar componentes de interfaz gráfica de usuario (GUI). Una buena API facilita el desarrollo de un programa al proporcionar todos los componentes básicos. Un programador luego junta los bloques.

Hay muchos tipos diferentes de API para sistemas operativos, aplicaciones o sitios web. Windows, por ejemplo, tiene muchos conjuntos de API que utilizan el hardware y las aplicaciones del sistema: cuando copias y pegas texto de una aplicación a otra, es la API la que permite que funcione [3].

La mayoría de los entornos operativos, como MS-Windows, proporcionan API, lo que permite a los programadores escribir aplicaciones coherentes con el entorno operativo. Hoy, las API también están especificadas por los sitios WEB. Por ejemplo, las API de Amazon o eBay permiten a los desarrolladores utilizar la infraestructura de éstas empresas para crear tiendas WEB especializadas. Los desarrolladores de software de terceros también usan API WEB para crear soluciones de software para usuarios finales.

Bibliotecas – Librerías

Una API generalmente está relacionada con una biblioteca –librería– de software. La API describe y prescribe el comportamiento esperado (una especificación) mientras que la biblioteca es una implementación real de este conjunto de reglas. Una única API puede tener múltiples implementaciones (o ninguna, siendo abstracta) en forma de diferentes bibliotecas que comparten la misma interfaz de programación. La separación de la API de su implementación puede permitir que los programas escritos en un idioma usen una biblioteca escrita en otro [4].

El uso de APIs puede variar según el tipo de lenguaje de programación involucrado. Una API para un lenguaje de procedimientos como LUA podría consistir principalmente en rutinas básicas para ejecutar código, manipular datos o manejar errores, mientras que una API para un lenguaje orientado a objetos como Java proporcionaría una especificación de clases y sus métodos de clase.

Los enlaces de lenguaje también son API. Al mapear las características y capacidades de un lenguaje a una interfaz implementada en otro, un enlace de lenguaje permite que se use una biblioteca o servicio escrito en uno cuando se desarrolla en otro.

APIs Sistemas Operativos

Una API puede especificar la interfaz entre una aplicación y el sistema operativo. Por ejemplo: POSIX especifica un conjunto de API comunes que tienen como objetivo permitir que una aplicación escrita para un sistema operativo que cumple con POSIX se compile para otro sistema operativo compatible con POSIX. Linux y Berkeley Software Distribution son ejemplos de sistemas operativos que implementan las API POSIX.

APIs Remotas

Las API Remotas permiten a los desarrolladores manipular recursos remotos a través de protocolos, estándares específicos para la comunicación que permiten que diferentes tecnologías trabajen juntas, independientemente del lenguaje o la plataforma. Por ejemplo, la API de Conectividad de Bases de Datos Java permite a los desarrolladores consultar muchos tipos diferentes de bases de datos con el mismo conjunto de funciones, mientras que la API de invocación de métodos remotos de Java usa el Protocolo de Método Remoto de Java para permitir la invocación de funciones que operan de forma remota, pero parecen locales al desarrollador.

Web APIs

Las WEB API  son las interfaces definidas a través de las cuales se producen las interacciones entre una empresa y las aplicaciones que utilizan sus activos. Un enfoque API es un enfoque arquitectónico que gira en torno al suministro de interfaces programables para un conjunto de servicios a diferentes aplicaciones que sirven a diferentes tipos de consumidores. Cuando se usa en el contexto del desarrollo WEB, una API se define típicamente como un conjunto de mensajes de solicitud del  Hypertext Transfer Protocol (HTTP), junto con una definición de la estructura de mensajes de respuesta, que generalmente está en un Extensible Markup Language (XML) o en JavaScript Object Notation (JSON). Un ejemplo podría ser una API de una empresa de transportes que se puede agregar a un sitio WEB centrado en eCommerce para facilitar el pedido de servicios de envío e incluir automáticamente las tarifas de envío actuales, sin que el desarrollador tenga que ingresar a la tabla de tarifas  de la empresa transportista.

Referencias

[1] https://www.appythings.nl/sites/default/files/api_for_dummies.pdf

[2] ftp://public.dhe.ibm.com/software/uk/pdf/api-service/WSM14025USEN.pdf

[3] https://www.webopedia.com/TERM/A/API.html

[4] https://en.wikipedia.org/wiki/Application_programming_interface

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s