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.
Después de leer este artículo podrás:
Contenido relacionado
¿Qué es la seguridad de la API?
¿Seguridad de aplicaciones web?
¿Qué es el OWASP Top 10?
¿Qué es la inyección de código SQL?
¿Qué es una llamada de la API?
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
Una interfaz de programación de aplicaciones (API) es un conjunto de reglas que permite a un programa informático transmitir los datos a otro programa informático.
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.
Una llamada API, también conocida como solicitud API, es un mensaje dirigido a una API que desencadena su uso.
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.
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.
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.
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.
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.
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 contra ataques y abusos. Dada la importancia de las API para el Internet moderno, la seguridad de las API es un componente fundamental de la seguridad de las aplicaciones web. Las medidas fundamentales de seguridad de las API incluyen:
Cloudflare API Gateway 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?