¿Qué es una API?

Una interfaz de programación de aplicaciones (API) es una forma de que una pieza de software utilice las funciones de otra pieza de software.

Objetivos de aprendizaje

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

  • Definir "API
  • Explicar las llamadas de la API, los puntos de conexión de la API, el esquema de la API y la integración de la API
  • Describir las API web, las API SOAP y las API REST
  • Entender las protecciones de seguridad de la API

Copiar enlace del artículo

¿Qué es una interfaz de programación de aplicaciones (API)?

Una interfaz de programación de aplicaciones (API) es un conjunto de reglas que permite que un programa de software transmita datos a otro programa de software. Las API permiten que los desarrolladores puedan evitar trabajo redundante; en lugar de crear y reconstruir funciones de aplicaciones que ya existen, los desarrolladores pueden incorporar las existentes en sus nuevas aplicaciones al formatear las solicitudes como lo requiere la API.

Una API es una "interfaz", es decir, una forma de que una cosa interactúe con otra. Si utilizamos un ejemplo del mundo real, un cajero automático tiene una interfaz, una pantalla y varios botones, que permite que los clientes interactúen con su banco y soliciten servicios, como sacar dinero. Del mismo modo, una API es la forma en que una pieza de software interactúa con otro programa para obtener los servicios necesarios.

Imaginemos que Jennifer diseña un sitio web que ayuda a los viajeros a comprobar el tráfico de las autovías antes de salir a trabajar. Jennifer podría dedicar mucho tiempo y dinero a crear un complejo sistema de seguimiento de las autovías para ofrecer esta información a los usuarios de su sitio web. Pero estas funciones ya existen, ya que otros han creado estos sistemas. En lugar de reinventar la rueda, el sitio web de Jennifer utiliza una API que ofrece un servicio externo de seguimiento de autovías. Ahora, Jennifer puede centrarse en diseñar otros aspectos del sitio web.

¿Qué es una llamada de la API?

Una llamada de la API, también conocida como solicitud de la API, es un mensaje dirigido a una API que desencadena el uso de la API. Volvamos al ejemplo: Jennifer diseña su sitio web de forma que, cuando se carga, genera automáticamente una llamada de la API al servicio de seguimiento de autovías. La respuesta llega al sitio web desde ese servicio y le permite mostrar la información más reciente sobre el tráfico de las autovías.

Las llamadas de la API tienen que estar formateadas según los requisitos de la API para que puedan funcionar. Los requisitos de la API se denominan su "esquema". El esquema también describe los tipos de respuestas que se proporcionan a cada solicitud.

Supongamos que alguien que va al trabajo utiliza el sitio web de Jennifer para comprobar el tráfico en la autovía 192. El sitio web envía una llamada de la API para ofrecer esta información: un mensaje que dice "Autovía 192." El servidor de la API del servicio de seguimiento de autovías recibe este mensaje y responde con los tiempos de viaje en la Autovía 192. Imaginémonos el esquema de la API de esta manera:

Solicitud de la API Respuesta de la API
"Autovía 192" Tiempos de viaje en la autvía 192
"Autovía 217" Tiempos de viaje en la autovía 217
"Autovía 225" Tiempos de viaje en la autovía 225

(Ten en cuenta que este es un ejemplo muy simplificado; las solicitudes, respuestas y esquemas de la API del mundo real son más complejos).

Ahora, supongamos que el sitio web de Jennifer envía una solicitud de la API para "Autovía ASDFGHJ". Esta solicitud no es válida, porque no se ajusta al esquema de la API, que solo permite nombres reales de autovías. El servidor no podrá proporcionar una respuesta utilizable para dicha solicitud.

¿Qué es un punto de conexión de la API?

Un punto de conexión es el extremo de un canal de comunicación. Un punto de conexión de la API es el lugar donde se origina una respuesta de la API.

En el ejemplo, un punto de conexión de la conexión de la API es el sitio web de Jennifer, y el otro es el servidor que aloja la API. Las llamadas de la API de Jennifer tienen que ir a una determinada URL (una URL es una dirección web, como www.cloudflare.com/learning) de la que es responsable el servidor de la API para obtener una respuesta.

¿Qué es la integración de la API?

La integración de la API es la combinación de dos o más aplicaciones mediante el uso de API. La integración de la API es lo que permite que una aplicación se beneficie de las funciones de otra aplicación, igual que la combinación de un equipo de ventas y un equipo de marketing en una oficina permite que esos dos equipos trabajen juntos y se beneficien de los esfuerzos del otro. Las integraciones de la API también se suelen utilizar para sincronizar datos entre dos aplicaciones o bases de datos.

¿Qué es una API web?

Cualquier cosa que implique código informático puede tener una API, desde los sistemas operativos hasta las bibliotecas de software. Una API web se utiliza específicamente para las aplicaciones web a las que se accede a por Internet.

Las API web son extremadamente importantes para la Internet moderna. Casi todas las aplicaciones orientadas al usuario dependen de las API para funcionar (¡no solo el sitio web de Jennifer!). Filosofías enteras de desarrollo de software se basan en el uso de las API: una de ellas es JAMstack, donde JAM se apoya en JavaScript, el marcado de la API. Otro ejemplo es la arquitectura de microservicios, que utiliza las API para llamar a las diferentes funciones que componen una aplicación. Incluso las aplicaciones desarrolladas sin estos enfoques suelen depender de las API.

¿Qué son las API SOAP y las APIs REST?

Las API SOAP y las API REST describen diferentes categorías de API.

SOAP (Simple Object Access Protocol) es un tipo de protocolo. Las API SOAP son API que solo utilizan el protocolo SOAP.

REST (REpresentational State Transfer) es un estilo de arquitectura para los servicios web. Una API REST es cualquier API creada mediante el uso de la arquitectura REST. A diferencia de las API SOAP, las API REST funcionan con cualquier protocolo. La mayoría de las API actuales son API REST.

¿Introducen las API riesgos de seguridad?

De igual forma que permitir que una persona utilice una aplicación introduce el riesgo de que haga un mal uso de esa aplicación, una API introduce el riesgo de que un cliente de la API haga lo mismo con el servicio. Además, las llamadas de la API web viajan por Internet y pueden ser interceptadas, suplantadas, o modificadas, como cualquier otra transferencia de datos a través de una red.

La seguridad de las API es la práctica de proteger las API de ataques y abusos. Dada la importancia de las API en la Internet moderna, la seguridad de las API es un componente central de la seguridad de las aplicaciones web. Entre las medidas fundamentales para la seguridad de las API se incluyen:

  • Limitación de velocidad: los clientes que realizan demasiadas solicitudes de API pueden ralentizar o bloquear la API para otros clientes. La limitación de velocidad pone un límite a la cantidad de solicitudes de la API que pueden provenir de un determinado punto de conexión de la API en un período de tiempo determinado.
  • Protección con DDoS: igual que la limitación de velocidad, la protección contra la denegación de servicio distribuido (DDoS) detiene los ataques DDoS, cuyo objetivo es agotar o sobrecargar a una API con una gran cantidad de solicitud enviadas todas a la vez.
  • Autenticación: es importante autenticar los puntos de conexión y los clientes de la API para asegurarse de que las solicitudes de la API provengan de fuentes legítimas y no de atacantes. El TLS mutuo (mTLS) es una de las formas más eficaces de autenticación de la API.
  • Validación del esquema: si una solicitud de la API no se ajusta al esquema de la API, esta puede reaccionar de forma inesperada, por ejemplo, revelando datos confidenciales. La validación de esquemas permite que una API pueda descartar este tipo de solicitudes.

Cloudflare API Shield incluye estas y otras funciones de seguridad para protegerse de las amenazas de la API. Para leer sobre la seguridad de la API en mayor profundidad, consulta ¿Qué es la seguridad de la API?

Ventas