¿Qué son las API y cómo las usan los desarrolladores?
Es posible que haya visto aparecer el término «API». Las actualizaciones del sistema operativo, el navegador web y las aplicaciones a menudo lanzan nuevas API para los desarrolladores. Pero, ¿qué son las API y cómo las usan los desarrolladores?
¿Qué es la interfaz de programación de aplicaciones?
La palabra API es un acrónimo que significa «Interfaz de programación de aplicaciones».
Piense en una API como el menú de un restaurante. El menú proporciona una lista de lo que puede pedir, junto con una descripción de cada plato. Cuando especifica qué elementos del menú desea, la cocina del restaurante hace el trabajo y le proporciona algo terminado. No sabes exactamente cómo prepara la comida un restaurante, y no es necesario.
De manera similar, una API enumera un conjunto de operaciones disponibles para los desarrolladores, junto con descripciones de esas operaciones. Los desarrolladores no necesariamente necesitan saber cómo el sistema operativo estructura y muestra el cuadro de diálogo «Guardar como». Solo necesitan saber que está disponible en su aplicación.
No es una analogía perfecta, ya que es posible que los desarrolladores tengan que proporcionar sus propios datos a la API para obtener resultados, por lo que probablemente sea más como un restaurante elegante donde proporciona algunos de sus propios ingredientes para que los use la cocina.
Pero es más o menos exacto. Las API permiten a los desarrolladores ahorrar tiempo al aprovechar la implementación de la plataforma para realizar el trabajo básico. Esto ayuda a reducir la cantidad de código que los desarrolladores necesitan crear y también ayuda a crear una mayor coherencia entre las aplicaciones en la misma plataforma. Las API pueden controlar el acceso a los recursos de hardware y software.
Las API facilitan la vida de los desarrolladores
Suponga que desea desarrollar una aplicación para el iPhone. El sistema operativo iOS de Apple ofrece una gran cantidad de abeja – al igual que cualquier otro sistema operativo – más fácil para usted.
Por ejemplo, si desea incrustar un navegador web para mostrar una o más páginas web, no tiene que crear su propio navegador web desde cero para su aplicación.estas usando WKWebView API para incrustar objetos 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 integrada del iPhone en su aplicación. Si no existiera una API para facilitar esto, los desarrolladores de aplicaciones tendrían que crear su propio software de cámara e interpretar la entrada del hardware de la cámara. Pero los desarrolladores del sistema operativo de Apple ya han hecho todo el trabajo duro, por lo que los desarrolladores pueden usar la API de la cámara para incrustar una cámara y luego pasar a crear su aplicación. Y, cuando Apple mejora la API de la cámara, todas las aplicaciones que dependen de ella aprovechan automáticamente esa mejora.
Esto funciona en todas las plataformas. Por ejemplo, ¿quieres crear un diálogo en Windows? tiene una API.¿Quieres admitir la autenticación de huellas dactilares en Android? tiene una API, por lo que no tiene que probar el sensor de huellas dactilares de cada fabricante diferente de Android. Los desarrolladores no tienen que reinventar la rueda una y otra vez.
La API controla el acceso a los recursos
Las API también se utilizan para controlar el acceso a dispositivos de hardware y funciones de software que las aplicaciones no necesariamente tienen permiso para usar. Esta es la razón por la que las API suelen desempeñar un papel importante en la seguridad.
Por ejemplo, si alguna vez visitó un sitio web y vio un mensaje en su navegador que indica que el sitio web solicita ver su ubicación precisa, el sitio web está intentando utilizar una API de geolocalización en su navegador web. Los navegadores web exponen dicha API, lo que facilita que los desarrolladores web accedan a su ubicación; solo tienen que preguntar «¿dónde está?»El navegador encuentra su ubicación física accediendo al GPS o redes Wi-Fi cercanas.
Sin embargo, los navegadores también exponen esta información a través de la API, ya que se puede controlar el acceso a la misma. Cuando un sitio web quiere acceder a su ubicación física exacta, la única forma en que puede obtenerla 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 la solicitud. La única forma de acceder a los recursos de hardware, como los sensores GPS, es a través de las API, por lo que los navegadores pueden controlar el acceso al hardware y limitar lo que pueden hacer las aplicaciones.
El mismo principio se aplica a los sistemas operativos móviles modernos como iOS y Android, donde las aplicaciones móviles tienen permisos que se pueden aplicar 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 podrá acceder a la cámara de su dispositivo.
Los sistemas de archivos que usan permisos (como se hace en Windows, Mac y Linux) tienen permisos impuestos por la API del sistema de archivos. Las aplicaciones típicas no tienen acceso directo a discos duros físicos sin formato. En su lugar, las aplicaciones deben acceder a los archivos a través de las API.
API para la comunicación entre servicios
Las API también se utilizan por otras razones. Por ejemplo, si alguna vez vio un objeto de Google Maps incrustado en un sitio web, ese sitio web está utilizando la API de Google Maps para incrustar el mapa. Google expone dichas API a los desarrolladores web, que luego pueden usar para colocar objetos complejos en sus sitios. Si no existiera tal API, los desarrolladores probablemente tendrían que crear sus propios mapas y proporcionar sus propios datos de mapas para poner un pequeño mapa interactivo en un sitio web.
Y, debido a que es una API, Google puede controlar el acceso de sitios de terceros a Google Maps, asegurándose de que lo usen de manera consistente, en lugar de intentar expandirse a un marco que muestra un sitio web de Google Maps.
Esto se aplica a muchos servicios en línea diferentes. Hay API para solicitar traducciones de texto de Google Translate, o para incrustar comentarios de Facebook o tweets de Twitter en un sitio web.
El estándar OAuth también define las API que le permiten iniciar sesión en sitios web utilizando otros servicios, por ejemplo, utilizando su cuenta de Facebook, Google o Twitter para iniciar sesión en un nuevo sitio web sin crear una nueva cuenta de usuario solo para ese sitio web. Las API son contratos estándar que definen cómo un desarrollador se comunica con un servicio y el tipo de salida que un desarrollador debe esperar recibir.
Si has visto esto, tendrás una mejor idea de lo que es una API. En última instancia, a menos que sea un desarrollador, realmente no necesita saber qué es una API. Sin embargo, si ve plataformas de software o servicios que agregan nuevas API para varios hardware o servicios, debería ser más fácil para los desarrolladores aprovechar estas capacidades.