¿Cómo funcionan las API?

Las API permiten a las aplicaciones intercambiar información al enviar y recibir llamadas API.

Metas de aprendizaje

Después de leer este artículo podrás:

  • Describe cómo funcionan las API
  • Diferencia entre un punto final de la API y un cliente
  • Compara diferentes protocolos API

Contenido relacionado


¿Quieres saber más?

Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.

Revisa la política de privacidad de Cloudflare para saber más sobre cómo Cloudflare gestiona tus datos personales.

Copiar el enlace del artículo

¿Cómo funcionan las API?

Las interfaces de programación de aplicaciones (API) permiten que los programas de software se comuniquen entre sí enviando y recibiendo llamadas API o solicitudes de información. Estas solicitudes son iniciadas por un cliente de API y aceptadas por un punto final de la API.

Para intercambiar información entre las API, los desarrolladores deben proporcionar documentación de la API que describa los tipos de solicitudes que una API puede aceptar, los casos de uso para los que está diseñada y cualquier otra condición (por ejemplo. protocolos, esquemas y requisitos de seguridad) que los terceros deben cumplir.

Las llamadas API permiten que las API compartan funcionalidades sin que los desarrolladores tengan que volver a escribir funciones desde cero para cada aplicación individual. Sin estas, los desarrolladores no podrían replicar fácilmente funciones en varias aplicaciones ni solicitar datos a otras aplicaciones, servicios y proveedores.

¿Qué es una API?

Una API es una interfaz que permite que los programas de software compartan datos y funciones. Este método de comunicación ayuda a mejorar las funcionalidades de la mayoría de aplicaciones web modernas.

Por ejemplo, imagina que Alice desarrolla una aplicación que personaliza las listas de reproducción de música clásica según el estado de ánimo de los clientes de escucha. En lugar de introducir manualmente miles de pistas para rellenar estas listas de reproducción, puede utilizar una API que conecte con un repositorio de música externo — lo que ahorra tiempo, dinero y retos de desarrollo.

Los casos de uso de las API son casi ilimitados. Conectan los servicios en la nube, consultan bases de datos, actualizan automáticamente aplicaciones móviles, transmiten contenidos a múltiples dispositivos, agregan precios de vuelos y opciones de entrega de comida, y mucho más.

¿Qué es un cliente de API?

Un cliente de API, a veces llamado "usuario", es el software que inicia una llamada a la API.

Antes de poder interactuar con un punto final de la API, un cliente de API necesita verificar su identidad. Esto ayuda a evitar que los atacantes exploten las API para realizar ataques de denegación de servicio distribuido (DDoS) u otras acciones maliciosas.

Normalmente, la autenticación se lleva a cabo mediante uno de estos cuatro métodos: una cadena de caracteres única (Clave API), una combinación de nombre de usuario y contraseña, un token OAuth o un mutual TLS. El uso de un método de autenticación sólido es una de las formas en que los desarrolladores pueden proteger las API de los ataques. (Más información sobre la seguridad de las API).

¿Qué es un punto final de API?

Un punto final de la API acepta la llamada API y devuelve la información solicitada.

Tanto los clientes como los puntos finales de API se refieren a programas de software alojados en servidores y no a dispositivos de hardware discretos. Los servidores API pueden alojar varios puntos finales —a cada uno de los cuales se le asigna un Uniform Resource Identifier (URI) que permite ser localizado por un cliente de API. En la mayoría de los casos, este URI es un localizador uniforme de recursos (URL), que apunta a ubicaciones basadas en el Internet (por ejemplo, un sitio web).

¿Qué es un esquema de API?

Un esquema de API son metadatos que definen las especificaciones que debe cumplir una solicitud API para ser considerada válida. Estas especificaciones pueden incluir detalles como el punto final de destino, método HTTP y otros requisitos establecidos por los desarrolladores.

Cuando se envía una llamada API desde un cliente, debe cumplir las condiciones descritas en el esquema. Solo entonces un punto final de la API puede proporcionar la información solicitada. Para ponerlo en perspectiva, imagina que Bob está organizando una fiesta. En la invitación, especifica que solo los invitados que lleven margaritas amarillas recibirán tarjetas de agradecimiento después de la fiesta. Sin embargo, si Carol decide llevar rosas rojas a la fiesta, no recibirá una tarjeta de agradecimiento.

Del mismo modo, una llamada API que no cumpla los requisitos establecidos por el esquema de API no recibirá una respuesta.

¿Qué es una API?

Al igual que las propias API, las llamadas API varían según las especificaciones descritas en la documentación de API. Sin embargo, en términos generales, una llamada API sigue tres pasos básicos:

  1. El cliente de API inicia la llamada API o solicitud de información.El cliente de API debe formatear la solicitud de acuerdo con el protocolo y el esquema proporcionados por el punto final de la API.
  2. El punto final de la API recibe la solicitud. Luego, el punto final de la API autentica al cliente de API y valida el esquema de API. Esto ayuda a garantizar lo siguiente: a) que la llamada procede de una fuente verificada y b) que se han cumplido las condiciones de la solicitud.
  3. El punto final de la API proporciona la información solicitada al cliente de API.El esquema de API determina el tipo de respuestas que pueden devolverse al cliente.

Para una explicación más detallada de las llamadas API, lee ¿Qué es una llamada API?

¿Qué protocolos y arquitecturas utilizan las API?

Las API son compatibles con varios protocolos diferentes. Un protocolo es un método de comunicación a través de una red e indica a la API cómo formatear las solicitudes y las respuestas. El tipo de protocolo API utilizado depende de la finalidad para la que se haya desarrollado la API, de los casos de uso a los que sirve y de las restricciones que conlleva.

Los dos protocolos API más habituales son el protocolo simple de acceso a objetos (SOAP) y la llamada de procedimiento remoto (RPC). La transferencia de estado representacional (REST) es una arquitectura de software que a menudo es comparada con estos protocolos.

SOAP proporciona un método estandarizado para enviar y recibir llamadas entre las API que utilizan sistemas operativos y arquitecturas diferentes. También es compatible con el protocolo de transferencia de hipertexto (HTTP), el protocolo de transferencia de archivos (FTP), el protocolo simple de transferencia de correo (SMTP) y otros protocolos de capa de aplicación. Solo puede devolver datos a los clientes de API, utilizando el lenguaje de marcado extensible (XML).

RPC es uno de los métodos más sencillos y antiguos de comunicación entre las API. Funciona al iniciar una llamada procedimental remota, durante la cual un cliente solicita una función a un servidor remoto. La diferencia primaria entre RPC y SOAP/REST es que RPC ayuda a realizar acciones específicas (o funciones), mientras que SOAP/REST se utiliza para recuperar recursos (o datos).

REST se refiere a una arquitectura REST, que dicta parcialmente cómo se formatean las llamadas API. En pocas palabras, REST permite a un cliente solicitar recursos a un servidor, que proporciona la información al cliente en su estado actual. Las REST API suelen utilizar el protocolo HTTP para dar formato a las solicitudes y respuestas, pero también son compatibles con el (FTP), SMTP y otros. Pueden devolver datos a los clientes de API utilizando varios formatos diferentes, como XML, notación de objetos de JavaScript (JSON) y lenguaje de marcado de hipertexto (HTML).

¿Las API son vulnerables a los riesgos de seguridad?

Como cualquier cosa conectada a una red, las API son vulnerables a la explotación y al abuso. Entre los ataques comunes API se incluyen los siguientes:

  • Ataques basados en la autenticación: la autenticación es una parte fundamental para garantizar que las llamadas API se envían y reciben de fuentes legítimas. Sin embargo, los atacantes aún pueden saltarse estas medidas para llevar a cabo ataques, ya sea al interceptar tokens de autenticación, robar claves API o al utilizar otras tácticas para obtener credenciales confidenciales.
  • Aprovechamiento de vulnerabilidades: las vulnerabilidades de las API —como problemas de autorización a nivel de objeto, problemas de autenticación del usuario, exposición excesiva de datos y otras de las OWASP API Security Top 10— se refieren a fallos en una API que pueden permitir a los atacantes acceder a ellas sin permiso. Al aprovechar estos fallos, los atacantes pueden llevar a cabo fugas de datos o utilizar las API para lanzar ataques más complejos.
  • Ataques DDoS: los atacantes pueden inundar las API con tráfico volumétrico en un intento por interrumpir (o detener por completo) el servicio que presta.

Cloudflare API Gateway ayuda a mitigar estos ataques al proporcionar una autenticación sólida, analizando las cargas útiles en busca de datos confidenciales, validando los esquemas de API y detectando y evitando el abuso de la API. Obtén más información sobre Cloudflare API Gateway.