Saltar al contenido
Electrónica Online

Interfaz de Programación de Aplicaciones (API)

interfaz de programacion de aplicaciones
Contenido

¿Qué es una API?

Una interfaz de programación de aplicaciones (API) es un código que permite la comunicación entre dos programas de software. Una API define cómo un desarrollador debe solicitar servicios a un sistema operativo (SO) u otra aplicación, y exponer datos en diferentes contextos y a través de múltiples canales.

Cualquier dato puede compartirse con una interfaz de programación de aplicaciones. Las APIs se implementan mediante llamadas a funciones compuestas por verbos y sustantivos; la sintaxis necesaria se describe en la documentación de la aplicación a la que se llama. Por ejemplo, en una web inmobiliaria, una API podría publicar las propiedades inmobiliarias disponibles por zonas geográficas, mientras que una segunda API proporciona los tipos de interés actuales y una tercera ofrece una calculadora de hipotecas.

En los inicios de la Web 2.0, el concepto de integrar datos y aplicaciones de distintas fuentes se denominaba mashup. La Web, el software diseñado para intercambiar datos a través de Internet y la computación en nube se han combinado para aumentar el interés por las APIs y los servicios.

¿Cómo funcionan las APIs?

Las APIs se componen de dos elementos relacionados entre sí:

  • Una especificación que describe cómo se intercambia información entre programas en forma de solicitud de procesamiento y devolución de los datos necesarios; y
  • Una interfaz de software escrita según esa especificación y publicada de alguna manera para su uso.

Se dice que el programa que quiere acceder a las funciones y capacidades de la API la llama, y el software que crea la API la publica.

Las APIs autorizan y conceden acceso a los datos que solicitan los usuarios y otras aplicaciones. El acceso a un servicio o parte de una funcionalidad se autentica mediante roles predefinidos que regulan quién o qué servicio puede acceder a acciones y datos específicos. Las APIs también proporcionan un registro de auditoría que detalla quién y qué ha tenido acceso al sistema y cuándo se ha producido.

Las aplicaciones que llaman a las APIs se escribían tradicionalmente en lenguajes de programación específicos. Las APIs web pueden llamarse a través de cualquier lenguaje de programación, pero también pueden acceder a ellas las páginas web creadas en lenguaje de marcado de hipertexto (HTML) o las herramientas generadoras de aplicaciones.

Las arquitecturas más comunes para APIs son la Transferencia de Estado Representacional (REST) y el Protocolo Simple de Acceso a Objetos (SOAP), que define una especificación de protocolo de comunicación estándar para un intercambio de mensajes basado en el Lenguaje Extensible de Marcado o XML. SOAP requiere menos código de bajo nivel relacionado con la infraestructura que REST. Sin embargo, las APIs REST son más fáciles de escalar y redistribuir, y más sencillas de implementar e integrar con sitios web y servicios. Las APIs REST son las más utilizadas hoy en día, sobre todo para interacciones web.

como funciona una API
Las aplicaciones suelen utilizar una API para acceder a los datos.

¿Por qué las APIs son importantes para las empresas?

Las APIs han mejorado la calidad y el suministro de software y servicios. El software a medida desarrollado para un fin específico se escribe a menudo para hacer referencia a APIs que ofrecen funciones útiles en diversos contextos. Esto reduce el tiempo de desarrollo, el coste y el riesgo de errores.

El creciente número de servicios web que los proveedores de la nube exponen a través de APIs también ha fomentado la creación de aplicaciones específicas para la nube, los esfuerzos del Internet de las cosas y las aplicaciones para dar soporte a dispositivos móviles y usuarios.

Las APIs añaden una capa digital a través de la cual se presentan los datos y activos empresariales de una empresa con la gobernanza y seguridad necesarias. Este enfoque mejora las interacciones con clientes, empleados y socios. Una mayor funcionalidad y alcance de los servicios aumenta el valor ofrecido a los usuarios y mejora la experiencia del cliente. Por ejemplo, el sitio web anterior anticipa las necesidades del cliente relacionadas con la búsqueda de bienes raíces.

Las APIs también crean nuevas oportunidades de monetización para las empresas, como la productización de datos con paquetes y planes personalizados para socios comerciales.

¿Cuáles son los beneficios de utilizar APIs?

Las APIs son un conjunto de normas. Estandarizan la forma en que los desarrolladores escriben el código de las aplicaciones, mejorando los procesos internos de desarrollo de software de una organización.

Utilizar las mismas reglas y formatos agiliza el código y lo hace más transparente. La estandarización también facilita la colaboración entre desarrolladores, que crean componentes de software con la intención de integrarlos con las APIs. Esto, a su vez, facilita el desarrollo de funciones y reduce el tiempo de comercialización.

Las APIs públicas y las compartidas con socios permiten a una organización lo siguiente:

  • Controlar y gestionar de forma segura cómo los usuarios y los sistemas acceden a los datos y a la funcionalidad de los servicios;
  • Permitir que terceros utilicen sus datos, aunque sea de forma limitada, lo que aumenta la exposición de la marca de una empresa
  • Hacer crecer su base de datos de clientes y aumentar su tasa de conversión alineando sus servicios con otras marcas de confianza; y
  • Monetizar sus APIs para que se conviertan en una línea de ingresos. Se trata de una táctica habitual para las pasarelas de pago en línea. Por ejemplo, las empresas que utilizan las API de PayPal están dispuestas a pagar por utilizar un sistema de pago de confianza.

Retos del uso de API

Existen retos y limitaciones asociados a las APIs, entre los que destacan los siguientes:

  • El desarrollo de API puede ser complejo y costoso de integrar con los sistemas y datos que representan. Ciertos tipos de funcionalidad podrían abordarse mejor mediante un enfoque como la automatización robótica de procesos.
  • Dado que se rigen por la normalización, las APIs también son vulnerables a los ciberataques relacionados con la exposición de datos, la autenticación de usuarios, la autorización a nivel de objeto y a nivel de función, la asignación masiva y los ataques de inyección.
  • Las APIs se actualizan con frecuencia, lo que dificulta mantener la documentación al día. Una gestión adecuada del ciclo de vida de las API y la eliminación de las API antiguas pueden ayudar a mitigar este problema.
  • Las APIs deben probarse para garantizar que funcionan como es debido. Lo mejor es codificar las prácticas de prueba.

Tipos de APIs

Existen cuatro tipos de APIs: privadas, públicas, de socios y compuestas.

  • Las APIs privadas, o internas, se publican internamente para que las utilicen los desarrolladores de la empresa con el fin de mejorar sus propios productos y servicios. Las APIs privadas no se exponen a terceros.
  • Las APIs públicas, o abiertas, se publican para que cualquiera pueda utilizarlas. Estas APIs no tienen restricciones.
  • Las APIs de socios sólo pueden ser utilizadas por partes específicas con las que una empresa acuerda compartir datos. Estas APIs se utilizan en las relaciones comerciales, a menudo para integrar software entre empresas asociadas.
  • Las APIs compuestas combinan varias APIs para abordar tareas relacionadas o interdependientes. Suelen mejorar la velocidad y el rendimiento en comparación con las APIs individuales.

Las APIs también se clasifican en locales, web, remotas y de programa.

  • Las APIs locales ofrecen servicios de SO o middleware a las aplicaciones. Ejemplos de API locales son las API .NET de Microsoft, la API de telefonía para aplicaciones de voz y las API de acceso a bases de datos.
  • Las APIs web están diseñadas para representar recursos como páginas HTML y se accede a ellas mediante un sencillo protocolo de transferencia de hipertexto, o HTTP. Cualquier URL web activa una API web. Las API web suelen denominarse API RESTful porque el editor de interfaces REST no guarda ningún dato internamente entre las solicitudes. Así, las peticiones de muchos usuarios pueden entremezclarse como lo harían en Internet.
  • Las APIs remotas interactúan a través de una red de comunicación para manipular recursos fuera del ordenador que realiza la petición. Se trata de una categoría más amplia que incluye, entre otras, las API web. Las API remotas no tienen por qué estar diseñadas a partir de estándares web, aunque muchas sí lo están. La Java Database Connectivity API y la Java Remote Method Invocation API son dos ejemplos de APIs remotas.
  • Las APIs de programa se basan en la tecnología de llamada a procedimiento remoto (RPC), que hace que un componente de programa remoto parezca local para el resto del software. Las API de arquitectura orientada a servicios, como la serie WS de Microsoft, son API de programa.

¿Por qué es importante el diseño de la API?

Un buen diseño de la API es fundamental para utilizarla con éxito. Los arquitectos de software dedican mucho tiempo a revisar todas las aplicaciones posibles de una API y la forma más lógica de utilizarla.

Las estructuras de datos y los valores de los parámetros son especialmente importantes porque deben coincidir entre quien llama a una API y quien la publica.

La seguridad también es un aspecto importante del diseño de una API. La explotación de API mal configuradas es una práctica habitual de los ciberatacantes. Las API son una pasarela que presenta los sistemas y datos de una organización a usuarios internos y externos. Cualquier compromiso puede crear amplios y graves problemas de seguridad.

¿Cuáles son ejemplos de APIs?

Los sistemas operativos y las herramientas de middleware exponen sus funcionalidades a través de colecciones de API que suelen denominarse conjuntos de herramientas. Dos conjuntos diferentes de herramientas que soportan las mismas especificaciones API son intercambiables para los programadores y constituyen la base de las reivindicaciones de compatibilidad e interoperabilidad. Por ejemplo, las especificaciones de la API .NET de Microsoft son la base de un paquete de middleware de código abierto equivalente al de Linux, ahora compatible con Microsoft.

Muchos productos y herramientas de software ofrecen funcionalidad a través de API, desde herramientas DevOps como Docker, Jenkins y GitLab hasta plataformas empresariales como Microsoft SharePoint. Las redes sociales, en particular, aprovechan las API abiertas para facilitar la funcionalidad de terceros, como la posibilidad de crear feeds de noticias y compartir fotos.

Internet es el principal impulsor de las APIs. Empresas como Facebook, Google y Yahoo publican APIs para animar a desarrolladores externos a aprovechar sus capacidades. Estas APIs han proporcionado de todo, desde nuevas funciones de Internet que navegan por los sitios de otros servicios, hasta aplicaciones para dispositivos móviles que ofrecen fácil acceso a recursos de aplicaciones web. Las nuevas funciones, como la entrega de contenidos, la realidad aumentada y las novedosas aplicaciones de la tecnología vestible, se crean en gran parte a través de estas API.

Tendencias de API

La ubicuidad de Internet, el mayor uso de la computación en nube y el paso de las aplicaciones monolíticas a los microservicios han contribuido a aumentar el uso de las API. Las tendencias en torno a las API son las siguientes:

REST y la web. Las llamadas a API web pueden proceder de cualquier lenguaje de programación, pero también pueden hacerlas páginas web creadas en HTML o herramientas generadoras de aplicaciones. El papel cada vez más importante de Internet y la nube en la vida cotidiana y las actividades empresariales ha ampliado el uso de las API y de herramientas de programación sencillas, o incluso sin programación, para acceder a ellas.

Tanto REST como SOAP pueden invocar servicios en la nube, conectarse a ellos, gestionarlos e interactuar con ellos. Cada vez se prefiere más REST para las API web porque utiliza menos ancho de banda y ofrece más opciones de lenguajes de programación, como JavaScript y Python. Grandes sitios web, como Amazon, Google, LinkedIn y Twitter, utilizan API RESTful.

APIs y la nube. La computación en nube introduce nuevas capacidades para dividir el software en componentes reutilizables, conectar componentes a peticiones y escalar el número de copias de software según cambie la demanda.

Estas capacidades de la nube han cambiado el enfoque de las APIs de modelos simples centrados en el programador y basados en RPC a modelos RESTful centrados en la web, e incluso a lo que se denomina programación funcional o modelos lambda de servicios que pueden escalarse instantáneamente según sea necesario en la nube.

Las API como servicios. La tendencia a pensar que las API representan recursos generales ha cambiado. Muchas aplicaciones y usuarios hacen uso de las APIs como herramienta general, pero también se consideran servicios y normalmente requerirán un desarrollo y despliegue más controlados.

SOA y los microservicios son ejemplos de API de servicios. Los servicios son la tendencia más candente en APIs, hasta el punto de que es posible que en el futuro todas las APIs se consideren representaciones de servicios.

Inteligencia artificial en las APIs. La IA y el aprendizaje automático se utilizan cada vez más para generar automáticamente documentación y supervisar las tendencias de uso de API.

Publicación y gestión de API

La empresa que publica la API controla todos los aspectos de su diseño y uso, incluidos la seguridad, la fiabilidad y el cobro por su utilización. También controla la adición de funciones, ya sean desarrolladas por el editor o por terceros. Eso significa que la empresa debe mantener el funcionamiento de la API según sus condiciones de servicio, como haría con cualquier aplicación o servicio.

Los siguientes son aspectos clave de la publicación y gestión de API:

Pruebas de API. Como todo software, las API deben probarse. Esto valida la API publicada frente a las especificaciones que los usuarios emplean para dar formato a sus solicitudes. Las pruebas de API también garantizan que:

  • Los puntos finales de la aplicación y las funciones de intercambio de datos funcionan como se espera;
  • Las fuentes de datos de los socios envían los datos esperados, cómo, cuándo y dónde se espera;
  • Los datos basura no entran en una base de datos y crean problemas de aplicación o corrupción de datos; y
  • Una aplicación funciona en todas las plataformas, incluidas las de escritorio, web y móvil.

Las pruebas de API suelen realizarse como parte de la gestión del ciclo de vida de la aplicación, tanto para el software que publica la API como para todo el software que la utiliza. Las API también deben probarse en su forma publicada para garantizar que se puede acceder a ellas correctamente.

Gestión de API. La gestión de API hace referencia al conjunto de actividades asociadas a la publicación de una API para su uso. La gestión permite a los usuarios encontrar la API y sus especificaciones y regular el acceso a ella en función de los permisos o políticas definidos por el propietario.

gestion de API
Las plataformas de gestión de API ayudan a las empresas a gestionar las APIs a medida que se vuelven más dependientes de ellas.

La gestión de API se ha convertido en una práctica habitual a medida que las empresas dependen cada vez más de ellas, adoptan un mayor número y se enfrentan a las complejidades administrativas que introducen. Las organizaciones tienen distintas necesidades de gestión, pero suelen abarcar funciones básicas, como seguridad, gobernanza, análisis y control de versiones.

Las API requieren una documentación sólida, niveles avanzados de seguridad, pruebas exhaustivas, versiones rutinarias y alta fiabilidad. Para hacer frente a estos requisitos, las organizaciones utilizan software de gestión de API, ya sea como plataforma combinada o con herramientas individuales. Estas herramientas suelen incluir varios componentes básicos: un portal para desarrolladores, gestión del ciclo de vida, un gestor de políticas, análisis y una pasarela de API.

Puntos finales de la API y seguridad. Los puntos finales de la API son los puntos en los que se comunican el cliente y el servidor, y en los que la API recibe solicitudes de recursos. Suelen ser una URL expuesta por el servidor que permite a otros sistemas conectarse a los puntos finales. Funcionan como puntos de entrada a la red corporativa. Los puntos finales son el lugar donde el código de un desarrollador interactúa con el código y los datos de una organización.

Los puntos finales de las APIs son objetivos atractivos para los atacantes y deben protegerse. Algunas medidas de seguridad son las siguientes:

  • Utilice la limitación de velocidad para disuadir a los bots y las amenazas de denegación de servicio distribuido.
  • Validar la entrada para garantizar que los datos son correctos y evitar ataques de inyección.
  • Almacenar las contraseñas como valores hash asimétricos.

¿Te ha resultado útil esta información?

No
¡Gracias por tus comentarios!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *