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.