Definition

Interfaz de programación de aplicaciones (API)

Una interfaz de programación de aplicaciones (API) es un código que permite que dos programas de software se comuniquen entre sí.

La API define la forma correcta para que un desarrollador escriba un programa que solicite servicios de un sistema operativo (SO) u otra aplicación. Las API se implementan mediante llamadas a funciones compuestas de verbos y sustantivos. La sintaxis requerida se describe en la documentación de la aplicación a la que se llama.

Cómo funcionan las API

Las API se componen de dos elementos relacionados. La primera es una especificación que describe cómo se intercambia la información entre programas, hecha en forma de una solicitud de procesamiento y una devolución de los datos necesarios. El segundo es una interfaz de software escrita según esa especificación y publicada de alguna manera para su uso.

Se dice que el software que quiere acceder a las características y capacidades de la API la llama, y se dice que el software que crea la API la publica.

Por qué las API son importantes para los negocios

La web, el software diseñado para intercambiar información a través de internet y la computación en la nube se han combinado para aumentar el interés en las API en general y en los servicios en particular.

El software que una vez se desarrolló a medida para un propósito específico ahora se escribe a menudo refiriendo API que proporcionan características amplias de utilidad general, reduciendo el tiempo y costo de desarrollo y mitigando el riesgo de errores.

Las API han mejorado constantemente la calidad del software durante la última década, y el número creciente de servicios web expuestos a través de API por parte de los proveedores de la nube también está fomentando la creación de aplicaciones específicas para la nube, esfuerzos de internet de las cosas (IoT) y aplicaciones para dispositivos y usuarios móviles.

Tres tipos básicos de APIs

Las API toman tres formas básicas: local, similar a la web y similar a un programa.

Las API locales son la forma original, de donde proviene el nombre. Ofrecen servicios de SO o middleware a los programas de aplicación. Las API de .NET de Microsoft, la TAPI (API de telefonía) para aplicaciones de voz y las API de acceso a las bases de datos son ejemplos de la forma de API local.

Las API web están diseñadas para representar recursos ampliamente utilizados, como páginas HTML, y se accede a ellas mediante un protocolo HTTP simple. Cualquier URL web activa una API web. Las API web a menudo se denominan REST (transferencia representativa del estado) o RESTful porque el editor de las interfaces REST no guarda ningún dato internamente entre las solicitudes. Como tal, las solicitudes de muchos usuarios se pueden mezclar como lo harían en internet.

Las API del programa se basan en la tecnología de llamada a procedimiento remoto (RPC) que hace que un componente del programa remoto parezca ser local al resto del software. Las API de arquitectura orientada a servicios (SOA), como las API de la serie WS de Microsoft, son API de programa.

Pie: Las API toman tres formas básicas: local, similar a la web y similar a un programa. Aquí hay un vistazo a cada tipo.

¿Por qué importa el diseño de las API?

Tradicionalmente, las aplicaciones que publican las API tienen que estar escritas en un lenguaje de programación, pero como las API están cada vez más generalizadas, la validación adicional de la estructura de una API es importante.

El buen diseño de la API es fundamental para el uso exitoso de la API, y los arquitectos de software pasan un tiempo considerable revisando todas las aplicaciones posibles de una API y la forma más lógica de usarla.

Las estructuras de datos y los valores de los parámetros son de particular importancia porque deben coincidir entre el llamador de una API y su editor.

REST y la web

Aunque las aplicaciones que llaman las API tradicionalmente han sido escritas en lenguajes de programación, internet y la nube están cambiando eso. Las API web se pueden llamar a través de cualquier lenguaje de programación, pero también se puede acceder a ellas desde páginas web creadas en HTML o herramientas de generación de aplicaciones.

El mayor papel que desempeña la web en nuestras vidas y actividades comerciales ha dado lugar a una explosión en el modelo REST y al uso de herramientas de programación simples, o incluso de ninguna programación, para el acceso a la API.

Ejemplos de API en la comunidad de desarrolladores

Los sistemas operativos y las herramientas de middleware exponen sus características a través de colecciones de API generalmente llamadas "kits de herramientas", y dos conjuntos diferentes de herramientas que admiten las mismas especificaciones de API son intercambiables para los programadores, lo cual es la base para las afirmaciones de compatibilidad e interoperabilidad. Las especificaciones de la API de .NET de Microsoft son la base de un paquete de middleware equivalente de Linux de código abierto que ahora es compatible con Microsoft, por ejemplo.

Actualmente, internet es el principal controlador para las API, y compañías como Facebook, Google y Yahoo publican API para alentar a los desarrolladores a desarrollar sus capacidades. Estas API nos han dado todo, desde nuevas funciones de internet que navegan por los sitios de otros servicios, hasta aplicaciones para dispositivos móviles que ofrecen un fácil acceso a los recursos web.

Las nuevas características, como la entrega de contenido, la realidad aumentada y las aplicaciones novedosas de la tecnología vestible, se crean en gran parte a través de estas API.

Tendencias de API en la nube

La computación en la nube introduce nuevas capacidades para dividir el software en componentes reutilizables, conectar los componentes a las solicitudes y escalar la cantidad de copias del software a medida que cambia la demanda.

Estas capacidades de nube ya han comenzado a cambiar el enfoque de las API de simples modelos centrados en programadores RPC a modelos centrados en web RESTful, e incluso a lo que se denomina "programación funcional" o "modelos lambda" de servicios que pueden escalarse instantáneamente según se necesite en la nube.

APIs como servicios

La tendencia a pensar que las API representan recursos generales ha cambiado la terminología. Si bien se espera que las API sean utilizadas como una herramienta general por muchas aplicaciones y usuarios, se dice que son servicios, y normalmente requerirán un desarrollo y una implementación más controlados.

SOA y microservicios son ejemplos de API de servicio. Los servicios son la tendencia más actual en las API, hasta el punto en que es posible que todas las API en el futuro se vean como servicios de representación.

Pruebas de API

Como todo software, las APIs deben ser probadas. El propósito de las pruebas es la validación de las API publicadas en comparación con las especificaciones, que los usuarios de esas API utilizarán para dar formato a sus solicitudes.

Estas pruebas generalmente se realizan como parte de la administración del ciclo de vida de la aplicación (ALM), tanto para el software que publica las API como para todo el software que las usa. Las API también deben probarse en su forma publicada para garantizar que se pueda acceder a ellas correctamente.

Gestión de API

La administración de API es un paso más allá de lo que normalmente se asocia con el desarrollo de software. Es el conjunto de actividades asociadas con la publicación de la API para su uso, que permite a los usuarios encontrarla y sus especificaciones, y regular el acceso a la API según los permisos o políticas definidos por el propietario.

La seguridad y el gobierno de la API caen en el ámbito de la administración de la API. Las herramientas utilizadas para la administración de API incluyen catálogos o directorios de API.

Este contenido se actualizó por última vez en octubre 2018

Investigue más sobre Desarrollo de software y aplicaciones