En Internet, una API permite que un sitio web brinde determinado servicio a otro, a través de llamadas a funciones documentadas y publicadas, facilitando de esta manera el “mash-up” o mezcla de servicios. Por ejemplo, hoy es posible que desde un blog personal se puedan publicar noticias del sitio de un famoso periódico, mezcladas con fotos que ya están alojadas en un sitio de fotografías, a través de llamadas a la API de estos dos servicios.
Una API detalla solamente la forma de llamar a cada función y la tarea que esta desempeña, sin importar cómo se lleva a cabo dicha tarea.
Un API es un conjunto de reglas para escribir funciones o hacer llamados a subrutinas y acceder a otras funciones en una librería. Los programas que usan estas reglas o funciones en sus llamadas API pueden comunicarse con cualquiera que use dicha API.
Las API abren distintos tipos de diálogos con el proveedor para obtener o actualizar información en el mismo, entre ellos:
- Acceso a bases de datos
- Comunicación cliente/servidor
- Comunicación peer-to-peer
- Comunicación en tiempo real
- Event-driven (orientada a eventos)
- Store and forward
- Procesamiento de transacciones
Una API puede combinar recuperación de errores, traducción de datos, seguridad, manejo de colas y nomenclatura con una interfase fácil de asimilar, que comprende acciones y comandos simples pero con muchas opciones.
Para invocar una API, el programa debe llamar a una función tipo “send”, especificando parámetros para el nombre de destino, indicadores de datos y opciones de confirmación.
La API toma la información y hace que todo el trabajo específico de comunicación sea transparente para la aplicación. Hay cuatro tipos de APIs que posibilitan el intercambio de datos entre diferentes aplicaciones de software en plataformas individuales o distribuidas:
- Remote Procedure Calls (RPCs) o Llamadas a Procedimientos Remotos; Con las RPCs, los programas pueden comunicarse a través de procedimientos (o tareas) que actúan en buffers compartidos de información.
- Standard Query Language (SQL); Un lenguaje de acceso de datos sin procedimientos que permite el intercambio de datos entre aplicaciones, accediendo a bases de datos comunes.
- Transferencia de archivos; Habilita el intercambio de datos enviando archivos formateados entre aplicaciones.
- Envío de mensajes; Provee el intercambio de datos por comunicaciones de interprogramación directa, a través de pequeños mensajes formateados entre aplicaciones emparejadas.
Las APIs pueden desarrollarse para cualquier plataforma y sistema operativo o para todos estos sistemas al mismo tiempo.
CARACTERISTICAS
Una interfaz de programación representa la capacidad de comunicación entre componentes de software. Se trata del conjunto de llamadas a ciertas bibliotecas que ofrecen acceso a ciertos servicios desde los procesos y representa un método para conseguir abstracción en la programación, generalmente (aunque no necesariamente) entre los niveles o capas inferiores y los superiores del software. Uno de los principales propósitos de una API consiste en proporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanas o iconos en la pantalla. De esta forma, los programadores se benefician de las ventajas de la API haciendo uso de su funcionalidad, evitándose el trabajo de programar todo desde el principio. Las APIs asimismo son abstractas: el software que proporciona una cierta API generalmente es llamado la implementación de esa API.
Por ejemplo, se puede ver la tarea de escribir "Hola Mundo" sobre la pantalla en diferentes niveles de abstracción:
- Haciendo todo el trabajo desde el principio:
- Traza, sobre papel milimetrado, la forma de las letras (y espacio) "H, o, l, a, M, u, n, d, o".
- Crea una matriz de cuadrados negros y blancos que se asemeje a la sucesión de letras.
- Mediante instrucciones en ensamblador, escribe la información de la matriz en la memoria intermedia ("buffer") de pantalla.
- Mediante la instrucción adecuada, haz que la tarjeta gráfica realice el volcado de esa información sobre la pantalla.
- Por medio de un sistema operativo para hacer parte del trabajo:
- Carga una fuente tipográfica proporcionada por el sistema operativo.
- Haz que el sistema operativo borre la pantalla.
- Haz que el sistema operativo dibuje el texto "Hola Mundo" usando la fuente cargada.
- Usando una aplicación (que a su vez usa el sistema operativo) para realizar la mayor parte del trabajo:
- Escribe un documento HTML con las palabras "Hola Mundo" para que un navegador Web como Firefox, Chrome, Opera, Safari, Midori, Iceweasel, Web o Internet Explorer pueda representarlo en el monitor.
Como se puede ver, la primera opción requiere más pasos, cada uno de los cuales es mucho más complicado que los pasos de las opciones siguientes. Además, no resulta nada práctico usar el primer planteamiento para representar una gran cantidad de información, como un artículo enciclopédico sobre la pantalla, mientras que el segundo enfoque simplifica la tarea eliminando un paso y haciendo el resto más sencillos y la tercera forma simplemente requiere escribir "Hola Mundo". Sin embargo, las APIs de alto nivel generalmente pierden flexibilidad; por ejemplo, resulta mucho más difícil en un navegador web hacer girar texto alrededor de un punto con un contorno parpadeante que programarlo a bajo nivel. Al elegir usar una API se debe llegar a un cierto equilibrio entre su potencia, simplicidad y pérdida de flexibilidad.
No hay comentarios:
Publicar un comentario