En informática , una interfaz de programación de aplicaciones o una interfaz de programación de aplicaciones (a menudo denominada API para Interfaz de programación de aplicaciones ) es un conjunto estandarizado de clases , métodos , funciones y constantes que sirve como fachada a través de la cual el software ofrece servicios a otro software. Se ofrece mediante una biblioteca de software o un servicio web , generalmente acompañado de una descripción que especifica cómo los programas de consumo pueden utilizar la funcionalidad del programa del proveedor .
De manera más general, hablamos de API desde el momento en que una entidad de TI busca actuar con o sobre un sistema de terceros, y esta interacción se produce de manera estandarizada respetando las restricciones de acceso definidas por el sistema de terceros. Se dice que el sistema de terceros "expone una API". Como tal, cosas tan diversas como la firma de una función, una URL , una RPC ... a veces se consideran API completas (o micro-API).
En la industria del software actual, las aplicaciones informáticas utilizan muchas interfaces de programación, porque la programación se realiza mediante la reutilización de bloques funcionales proporcionados por software de terceros. Esta construcción por ensamblaje requiere que el programador sepa cómo interactuar con otro software, lo que depende de su interfaz de programación. El programador no necesita conocer los detalles de la lógica interna del software de terceros, y esto no está necesariamente documentado por el proveedor. Solo se necesita realmente la API para utilizar el sistema de terceros en cuestión.
El software, como los sistemas operativos , los sistemas de gestión de bases de datos , el lenguaje de programación o los servidores de aplicaciones, incluyen una o más interfaces de programación.
Una interfaz de programación es una fachada claramente delimitada a través de la cual un software proporciona servicios a otro software. El objetivo es proporcionar una puerta de entrada a la funcionalidad ocultando los detalles de la implementación. Una interfaz de programación puede constar de clases , métodos o funciones , tipos de datos y constantes . La mayoría de las veces, una interfaz de programación se implementa mediante una biblioteca de software que proporciona una solución a un problema informático al ignorar su funcionamiento.
La descripción de la interfaz de programación especifica cómo los clientes pueden interactuar con el software enfatizando la funcionalidad ofrecida por el software y ocultando los detalles de su funcionamiento. Una interfaz de programación se puede utilizar en muchos programas y luego sirve como un conjunto de construcción, proporcionando piezas de funcionalidad que se pueden incorporar a las aplicaciones. Los programadores crean interfaces de programación para otros programadores, para la industria informática, pero también a veces para sus propias necesidades.
La creación y uso de interfaces de programación es un tema esencial de la programación contemporánea. Una aplicación normalmente hace uso de muchas interfaces de programación, implementadas por bibliotecas de software que pueden hacer uso de otras interfaces de programación.
En la arquitectura orientada a servicios, las aplicaciones pueden depender de funcionalidades de terceros ofrecidas por software a través de interfaces de programación implementadas por servicios web .
Las interfaces de programación ahorran tiempo gracias a la colaboración y la especialización de los equipos de desarrollo de software. Por ejemplo, hoy Nadie escribe un DBMS casero para una aplicación informática. Los programadores reutilizan los DBMS disponibles en el mercado suministrados por empresas especializadas en este tipo de producto y se centran en la lógica específica de su aplicación. Por tanto, muchos productos de infraestructura están disponibles en forma de marcos o bibliotecas .
Una interfaz de programación permite, por ejemplo, que un programa acceda a los servicios ofrecidos por el sistema operativo que aloja el programa. La interfaz de sockets es un ejemplo clásico de una interfaz de programación que permite a un programa aprovechar las posibilidades de la capa de red del sistema operativo.
Una de las interfaces más conocidas es la API de Windows . Es una colección de funciones, tipos de datos y constantes, en el lenguaje de programación C (Windows ha sido escrito principalmente en C, especialmente el kernel y algunos C ++), que permite a los programadores crear aplicaciones para sistemas operativos Windows. Ofrece la posibilidad de manejar archivos, procesos, comunicarse a través de redes y manejar interfaces gráficas .
En la industria del software actual, las aplicaciones informáticas utilizan muchos software de terceros, como un sistema operativo , bibliotecas estándar o servidores de aplicaciones . Cada uno de estos productos tiene su propia interfaz de programación. Así, cada programador involucrado en el desarrollo de tales productos está involucrado, conscientemente o no, en el negocio de las interfaces de programación. Desde un punto de vista comercial , una interfaz de programación es un contrato mediante el cual un proveedor de funciones describe su oferta, las funciones que ofrece y cualquier limitación.
La construcción mediante el ensamblaje de software requiere que el constructor sepa cómo interactúan las piezas entre sí. Quien realiza el montaje no necesita conocer todos los detalles de los mecanismos internos de una pieza, siempre que conozca su interfaz de programación. La interfaz de programación es lo mínimo que un programador necesita saber para poder utilizar un software de terceros. Para una función es el nombre de ésta, los parámetros y el tipo de resultado, así como los efectos observables de la función.
Una interfaz de programación se distribuye en el mercado como un producto de software ordinario, que se mejora periódicamente. La implementación de funcionalidades utilizables a través de la interfaz de programación puede cambiar periódicamente, manteniendo la fachada conforme al contrato.
Las interfaces de programación pueden tener varias funciones. Por ejemplo, en Java EE , encontramos las siguientes funciones:
Las API se pueden utilizar para simplificar el acceso a otras API
Las interfaces de programación pueden transportar metadatos .
La API de administración es una disciplina , una herramienta de administración de API , una solución de TI que está diseñada para ayudar a las organizaciones , las empresas a operar y publicar la mejor API sin poner en peligro el sistema de información . Es un medio para interconectar de forma segura los servicios internos y externos. Además, API Management también permite tener cierta visibilidad sobre las solicitudes de acceso a sus API. Esto protege las API expuestas, facilita la gestión de su ciclo de vida, ayuda a controlar el consumo de API y proporciona herramientas de informes para supervisar los contratos. La API de administración implica la creación de recursos de soporte al usuario , que definen y documentan la API.
"Una API ( interfaz de programación de aplicaciones ) […]"