Es probable que haya visto surgir 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 y cómo la usan los desarrolladores?
¿Qué es una interfaz de programación de aplicaciones?
El término API es un acrónimo y significa «Interfaz de programación de aplicaciones».
Piense en una API como un menú en un restaurante. El menú proporciona una lista de platos que puede pedir, junto con una descripción de cada plato. Cuando especifica qué ítems del menú desea, la cocina del restaurante hace el trabajo y le proporciona algunos platos terminados. No sabe exactamente cómo el restaurante prepara esa comida, y verdaderamente no es necesario.
De manera semejante, una API enumera un montón de operaciones que los desarrolladores pueden utilizar, junto con una descripción de lo que hacen. El desarrollador no necesariamente necesita saber cómo, a modo de ejemplo, un sistema operativo crea y presenta un cuadro de diálogo «Guardar como». Solo necesitan saber que está habilitada para utilizar en su aplicación.
Esta no es una metáfora perfecta, dado que los desarrolladores pueden tener que proporcionar sus propios datos a la API para obtener los resultados, por lo que tal vez sea más como un restaurante elegante donde puede proporcionar algunos de sus propios ingredientes con los que funcionará la cocina.
Pero es bastante exacto. Las API posibilitan a los desarrolladores ahorrar tiempo al aprovechar la implementación de una plataforma para hacer el trabajo esencial. Esto ayuda a reducir la cantidad de código que los desarrolladores necesitan crear y además ayuda a crear más coherencia entre las 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 desea desarrollar una aplicación para iPhone. El sistema operativo iOS de Apple proporciona una gran cantidad de API—Como lo hace cualquier otro sistema operativo— para que esto le resulte más fácil.
Si desea incrustar un navegador web para mostrar una o más páginas web, a modo de ejemplo, no tiene que programar su propio navegador web desde cero solo para su aplicación. Usas el WKWebView API para incrustar un objeto de navegador WebKit (Safari) en su aplicación.
Si desea capturar fotos o videos desde la cámara del iPhone, no tiene que escribir su propia interfaz de cámara. Utiliza la API de la cámara para incrustar la cámara incorporada del iPhone en su aplicación. Si las API no existieran para facilitar esto, 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 insertar una cámara y posteriormente continuar 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 aprovecharán esa mejora automáticamente.
Esto se aplica a todas las plataformas. A modo de ejemplo, ¿desea crear un cuadro de diálogo en Windows? Hay una API para eso. ¿Quiere admitir la autenticación de huellas dactilares en Android? Hay una API para eso, además, para que no tenga que probar el sensor de huellas dactilares de cada fabricante de Android. Los desarrolladores no disponen que reinventar la rueda una y otra vez.
Las API controlan el acceso a los recursos
Las API además se usan para controlar el acceso a dispositivos de hardware y funciones de software que una aplicación no necesariamente tiene permiso para utilizar. Es es por ello que que las API a menudo juegan un papel importante en la seguridad.
A modo de ejemplo, si en algún momento ha visitado un portal web y ha visto un mensaje en su navegador que indica que el portal web solicita ver su ubicación precisa, ese portal web está intentando usar la API de geolocalización en su navegador web. Los navegadores web exponen API como esta para facilitar a los desarrolladores web el acceso a su ubicación; solo pueden preguntar «¿dónde estás?» y el navegador hace el trabajo duro de entrar al GPS o redes Wi-Fi cercanas para hallar su ubicación física.
A pesar de esto, los navegadores además exponen esta información a través de una API debido a que es factible controlar el acceso a ella. Cuando un portal web desea entrar a su ubicación física exacta, la única forma de obtenerlo es a través de la API de ubicación. Y, cuando un portal web intenta utilizarlo, usted, el usuario, puede elegir por permitir o rechazar esta solicitud. La única forma de entrar 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 pueden hacer las aplicaciones.
Este mismo principio se utiliza en sistemas operativos móviles modernos como iOS y Android, donde las aplicaciones móviles disponen permisos que se pueden hacer cumplir controlando el acceso a las API. A modo de ejemplo, si un desarrollador intenta entrar 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 entrar a la cámara de su dispositivo.
Los sistemas de archivos que usan permisos, como lo hacen en Windows, Mac y Linux, disponen esos permisos impuestos por la API del sistema de archivos. Una aplicación típica no tiene acceso directo al disco duro físico sin procesar. En cambio, la aplicación debe entrar a los archivos a través de una API.
Las API se usan para la comunicación entre servicios
Las API además se usan por todo tipo de otras razones. A modo de ejemplo, si en algún momento ha visto un objeto de Google Maps incrustado en un portal web, ese portal web está usando la API de Google Maps para incrustar ese mapa. Google expone API como esta a los desarrolladores web, que posteriormente pueden utilizar las API para colocar objetos complejos de forma directa en su portal web. Si no existieran API como esta, los desarrolladores podrían tener que crear sus propios mapas y proporcionar sus propios datos de mapas solo para poner un pequeño mapa interactivo en un portal web.
Y, debido a que es una API, Google puede controlar el acceso a Google Maps en sitios web de terceros, asegurándose de que lo usen de manera coherente en lugar de intentar incrustar desordenadamente un marco que muestre el portal web de Google Maps, a modo de ejemplo.
Esto se aplica a muchos servicios en línea diferentes. Existen API para solicitar la traducción de texto de Google Translate, o incrustar comentarios de Facebook o tweets de Twitter en un portal web.
El estándar OAuth además establece una serie de API que le posibilitan iniciar sesión en un portal web con otro servicio, a modo de ejemplo, usar sus cuentas de Facebook, Google o Twitter para iniciar sesión en un nuevo portal web sin crear una nueva cuenta de usuario solo para ese sitio. . Las API son contratos estándar que definen cómo los desarrolladores se comunican con un servicio y el tipo de resultado que esos desarrolladores deben esperar recibir.
Si ha superado esto, tendrá una mejor idea de lo que es una API. En última instancia, no necesita saber qué es una API a menos que sea un desarrollador. Pero, si ve que una plataforma o servicio de software ha agregado nuevas API para varios hardware o servicios, debería ser más fácil para los desarrolladores aprovechar dichas características.