¿Qué es una API?


francisco perez yoma interfaz programacion aplicaciones


Es probable que haya visto aparecer el término "API". Las actualizaciones del sistema operativo, el navegador web y las aplicaciones a menudo anuncian nuevas API para los desarrolladores. Pero, ¿qué es una API?

Interfaz de programación de aplicaciones (Application Programming Interface)
El término API es un acrónimo, y significa "Interfaz de Programación de Aplicaciones".
Piense en un API como un menú en un restaurante. El menú ofrece una lista de platos que se pueden pedir, junto con una descripción de cada plato. Cuando usted especifica qué platos del menú desea, la cocina del restaurante hace el trabajo y le proporciona algunos platos terminados. Usted no sabe exactamente cómo el restaurante prepara esa comida, y usted realmente no necesita hacerlo.

Del mismo modo, una API enumera un conjunto de operaciones que los desarrolladores pueden utilizar, junto con una descripción de lo que hacen. El desarrollador no necesita saber necesariamente cómo, por ejemplo, un sistema operativo construye y presenta un cuadro de diálogo "Guardar como". Sólo necesitan saber que está disponible para su uso en su aplicación.

Esto no es una metáfora perfecta, ya que los desarrolladores pueden tener que proporcionar sus propios datos a la API para obtener los resultados, por lo que tal vez es más como un restaurante de lujo donde usted puede proporcionar algunos de sus propios ingredientes con los que la cocina trabajará.

Pero es muy preciso. Las APIs permiten a los desarrolladores ahorrar tiempo al aprovechar la implementación de una plataforma para hacer el trabajo de fondo. Esto ayuda a reducir la cantidad de código que los desarrolladores necesitan crear, y también ayuda a crear más consistencia entre aplicaciones para la misma plataforma. Las API pueden controlar el acceso a los recursos de hardware y software.

Las API facilitan la vida a los desarrolladores

Digamos que quieres desarrollar una aplicación para un iPhone. El sistema operativo iOS de Apple proporciona un gran número de API, como cualquier otro sistema operativo, para que te resulte más fácil.

Si desea incrustar un navegador web para mostrar una o más páginas web, por ejemplo, no tiene que programar su propio navegador web desde cero sólo para su aplicación. La API WKWebView se utiliza para incrustar un objeto de navegador WebKit (Safari) en la aplicación.

Si quieres capturar fotos o vídeos desde la cámara del iPhone, no tienes que escribir tu propia interfaz de cámara. La API de la cámara se utiliza para incrustar la cámara integrada del iPhone en la aplicación. Si las API no existieran para hacer esto más fácil, los desarrolladores de aplicaciones tendrían que crear su propio software de cámara e interpretar las entradas del hardware de la cámara. Pero los desarrolladores del sistema operativo de Apple han hecho todo este trabajo duro para que los desarrolladores puedan utilizar la API de la cámara para incrustar una cámara, y luego seguir con la construcción de su aplicación. Y, cuando Apple mejore la API de la cámara, todas las aplicaciones que dependen de ella se beneficiarán automáticamente de esa mejora.

Esto se aplica a todas las plataformas. Por ejemplo, ¿desea crear un cuadro de diálogo en Windows? Hay un API para eso. ¿Quieres admitir la autenticación de huellas dactilares en Android? También hay una API para eso, por lo que no tiene que probar el sensor de huellas dactilares de todos los fabricantes de Android. Los desarrolladores no tienen que reinventar la rueda una y otra vez.

Las API controlan el acceso a los recursos

Las API también se utilizan para controlar el acceso a dispositivos de hardware y funciones de software que una aplicación no tiene necesariamente permiso para usar. Es por eso que las APIs a menudo juegan un papel importante en la seguridad.

Por ejemplo, si alguna vez ha visitado un sitio web y ha visto un mensaje en su navegador que indica que el sitio web está pidiendo ver su ubicación exacta, ese sitio web está intentando utilizar la API de geolocalización en su navegador web. Los navegadores web exponen APIs como ésta para facilitar a los desarrolladores web el acceso a su ubicación: sólo tienen que preguntarse "¿dónde estás?". y el navegador hace el trabajo duro de acceder al GPS o a las redes Wi-Fi cercanas para encontrar su ubicación física.

Sin embargo, los navegadores también exponen esta información a través de una API porque es posible controlar el acceso a ella. Cuando un sitio web quiere acceder a su ubicación física exacta, la única manera de conseguirlo es a través de la API de ubicación. Y, cuando un sitio web intenta utilizarlo, usted, el usuario, puede optar por permitir o denegar esta solicitud. La única manera de acceder a recursos de hardware como el sensor GPS es a través de la API, por lo que el navegador puede controlar el acceso al hardware y limitar lo que las aplicaciones pueden hacer.

Este mismo principio se utiliza en los sistemas operativos móviles modernos como iOS y Android, donde las aplicaciones móviles tienen permisos que se pueden hacer cumplir controlando el acceso a las API. Por ejemplo, si un desarrollador intenta acceder a la cámara a través de la API de la cámara, puede denegar la solicitud de permiso y la aplicación no tiene forma de acceder a la cámara del dispositivo.

Los sistemas de archivos que utilizan permisos, al igual que en Windows, Mac y Linux, tienen esos permisos impuestos por la API del sistema de archivos. Una aplicación típica no tiene acceso directo al disco duro físico crudo. En su lugar, la aplicación debe acceder a los archivos a través de una API.

Las API se utilizan para la comunicación entre servicios

Las APIs también se utilizan por todo tipo de razones. Por ejemplo, si alguna vez ha visto un objeto de Google Maps incrustado en un sitio web, ese sitio web utiliza la API de Google Maps para incrustar ese mapa. Google expone APIs de este tipo a los desarrolladores web, que pueden utilizarlas para colocar objetos complejos directamente en su sitio web. Si no existieran APIs como ésta, los desarrolladores podrían tener que crear sus propios mapas y proporcionar sus propios datos de mapa sólo para poner un pequeño mapa interactivo en un sitio web.

Además, como se trata de una API, Google puede controlar el acceso a Google Maps en sitios web de terceros, lo que garantiza que lo utilicen de forma coherente en lugar de intentar incrustar un marco que muestre, por ejemplo, el sitio web de Google Maps.
Esto se aplica a muchos servicios en línea diferentes. Existen API para solicitar traducciones de texto a Google Translate o para insertar comentarios de Facebook o tweets de Twitter en un sitio web.

El estándar OAuth también define una serie de API que le permiten iniciar sesión en un sitio web con otro servicio, por ejemplo, utilizar sus cuentas de Facebook, Google o Twitter para iniciar sesión en un nuevo sitio web sin crear una nueva cuenta de usuario sólo para ese sitio. Las API son contratos estándar que definen la forma en que los desarrolladores se comunican con un servicio y el tipo de salida que los desarrolladores deben esperar recibir de vuelta.

Si has superado esto, tendrás una mejor idea de lo que es una API. En última instancia, no necesita saber lo que es una API a menos que sea un desarrollador. Sin embargo, si ve que una plataforma o servicio de software ha añadido nuevas API para diversos hardware o servicios, debería ser más fácil para los desarrolladores aprovechar dichas funciones.