Un endpoint de API es una ubicación digital donde una interfaz de programación de aplicaciones (API) recibe llamadas de API, también conocidas como solicitudes de API, para recursos en su servidor. Los endpoints de API son componentes de las API y suelen tener la forma de URL o localizadores uniformes de recursos.
Una API es un intermediario que permite que las aplicaciones de software se comuniquen entre sí para intercambiar datos, características y funcionalidades. Es un conjunto de protocolos y reglas que definen cómo un cliente API (el software que realiza una solicitud) puede comunicarse con un servidor para acceder a datos y funciones. Al usar una API, los desarrolladores pueden aprovechar los datos y servicios ya existentes; además, los propietarios de aplicaciones pueden compartir o comercializar esos mismos datos y servicios.
Los endpoints funcionan de manera similar a los números de teléfono: al igual que un usuario marca un número de teléfono para comunicarse con una determinada persona o empresa, los clientes de API (el software que realiza una llamada de API) proporcionan una URL de endpoint para comunicarse con un recurso específico. Una URL de endpoint proporciona la ubicación de un recurso en un servidor de API y ayuda a conectar el cliente de API con el recurso que está solicitando. En esencia, lo que le dice al servidor es: "el recurso que necesito se encuentra aquí".
Los endpoints API pueden permitir que un cliente de API solicite todo tipo de datos de una API, con casos de uso que van desde actualizaciones en tiempo real de aplicaciones de software de redes sociales hasta funcionalidades como la incorporación de audio o video, la recuperación de noticias o la creación de una nueva publicación.
Unos endpoints de API seguros y con el formato adecuado son una parte esencial del funcionamiento de las API. Las API simplifican el diseño y el desarrollo de nuevas aplicaciones y servicios (porque permiten que los desarrolladores se basen en capacidades y servicios ya existentes), así como la integración y gestión de los ya existentes. También ofrecen ventajas significativas a los desarrolladores y a las organizaciones en general, como la mejora de la colaboración, innovación acelerada, aumento de la agilidad, escalabilidad y seguridad, entre otras. Los endpoints de API permiten el intercambio de recursos que hace posible dicha integración.
Para que las API funcionen como deberían, los endpoints de API deben ser precisos, intuitivos, detectables y autenticados; de lo contrario, la comunicación entre el cliente y el servidor puede interrumpirse, lo que afectaría la funcionalidad y la satisfacción del usuario. En pocas palabras, los endpoints de API permiten que los clientes de API localicen y accedan con éxito a los recursos y funciones solicitados.
Los endpoints de API generalmente se encuentran en la documentación de una API, que es donde los desarrolladores colocan la información correspondiente, como qué tipo de solicitudes aceptará una API y cómo se deben formatear las solicitudes. Idealmente, esta documentación también incluye una lista de todos los endpoints de API disponibles y una breve descripción de sus funcionalidades.
En un contexto de API REST (un estilo arquitectónico de software utilizado con frecuencia para aplicaciones web), el proceso sería así:
Comienza cuando un cliente de API envía una solicitud de recursos (llamada de API) al endpoint de API correspondiente. El acceso a los endpoints se realiza mediante métodos de solicitud HTTP, como POST, GET, PUT, PATCH y DELETE. Estos métodos indican la acción que el cliente desea realizar sobre el recurso especificado.
Por ejemplo, si un cliente busca recuperar una lista con las cantidades totales de medallas olímpicas para un año determinado de la base de datos hipotética Olympicfacts.com, se envía una solicitud GET a la siguiente URL del endpoint:
https://api.olympicfacts.com/v1/{year}
Esta solicitud devolvería una lista con las cantidades totales de medallas olímpicas por país. (v1 en nuestro endpoint hipotético indica la versión de la API, una práctica común en las diferentes versiones de las API). Si el cliente quisiera la cantidad total para un país específico en un año determinado, se agregaría un identificador a la URL base:
https://api.olympicfacts.com/v1/year/{id}
En este ejemplo, el identificador {id} se utiliza para indicar a qué país corresponde la información que está buscando el cliente.
Además, la solicitud podría incluir:
Una vez que el servidor autentica la solicitud y valida la entrada, recupera los datos solicitados y devuelve la respuesta al cliente. Muchas organizaciones utilizan puertas de enlace de API para ejecutar estas funciones y gestionar el flujo de tráfico de API.
Una API REST (también llamada API RESTful o API web RESTful) es una API que se ajusta a los principios de diseño del estilo arquitectónico de transferencia de estado representacional (REST).1 GraphQL es un lenguaje de consulta de código abierto y un tiempo de ejecución del lado del servidor que especifica cómo los clientes deben interactuar con las API.2
GraphQL y REST son tecnologías basadas en recursos que admiten formatos de datos similares (por ejemplo, JSON y XML) y permiten a los clientes solicitar datos de servidores mediante métodos HTTP. Sin embargo, difieren en los requisitos de solicitud y en la recuperación de datos, entre otras diferencias. Nos centraremos en una diferencia clave relacionada con los endpoints.
Las API REST utilizan varios puntos de conexión y tienen diferentes endpoints para cada recurso. Cuando un cliente solicita un recurso, el servidor devuelve todos los datos asociados con el recurso, incluso si el cliente solo necesita un pequeño subconjunto de los datos. Esto se conoce como sobrecaptación. Si un cliente necesita que los datos se distribuyan en varios recursos, debe realizar llamadas de API separadas a cada uno de esos recursos para compilar los datos necesarios.
GraphQL expone modelos de datos mediante el uso de un único endpoint y emplea una sintaxis que permite a los clientes realizar solicitudes de API en una sola línea, o en unas pocas líneas, para especificar exactamente lo que necesitan. Las consultas de GraphQL pueden seguir referencias entre recursos y realizar tareas complejas de recuperación de datos en una sola solicitud. Esto ayuda a eliminar los problemas de subcaptación y sobrecaptación, así como la necesidad de realizar múltiples llamadas a la API.
Ni las API REST ni las GraphQL son intrínsecamente superiores; son herramientas diferentes que se adaptan a tareas diferentes.3
La clave para cualquier buen diseño de API es la fase de prueba. Las aplicaciones modernas a menudo utilizan API para integrar funciones de otro software o se crean utilizando arquitecturas de microservicios (que dependen de API para la comunicación entre servicios dispares). Probar los endpoints de API es esencial para garantizar la confiabilidad.
Existen opciones de pruebas manuales para las API y opciones de pruebas que utilizan la automatización, así como numerosas herramientas y plataformas de pruebas (tanto de código abierto como propios) que las empresas pueden emplear.
Las pruebas manuales de endpoints de API pueden ser más lentas y menos eficientes, pero también más precisas y personalizadas para casos de uso específicos. Las pruebas funcionales consistirían simplemente en enviar una solicitud desde una aplicación para garantizar que se dé la respuesta correcta. En un ejemplo de redes sociales, esto podría significar enviar una solicitud de una nueva publicación por parte de un usuario particular y verificar que la publicación devuelta sea realmente la correcta.
Otros tipos de pruebas manuales implican:
Las pruebas automatizadas realizadas a través de una plataforma de gestión de API pueden ofrecer varias ventajas:
En general, cada uno debe devolver la respuesta prevista, en términos de formato, los datos devueltos y el código de estado.
Debido a que los endpoints de API proporcionan una forma para que las aplicaciones y sistemas internos y externos accedan a datos y los integren, también presentan posibles puntos de entrada para actores maliciosos. Los ataques de denegación de servicio distribuidos (DDoS) pueden usar solicitudes legítimas pero en cantidades absurdas para inundar un servidor. Otros tipos de ataques pueden intentar utilizar endpoints de API para extraer más información de la que el cliente está autorizado a recibir, o usar endpoints de API para instalar malware o código malicioso.
Una organización puede mantener la seguridad de sus endpoints de API y la seguridad general de API de varias maneras, entre las que se incluyen:
HTTPS (una versión más segura del protocolo de transferencia de hipertexto o HTTP) utiliza seguridad de la capa de transporte (TLS) para cifrar las comunicaciones entre el cliente y el servidor. Esto aumenta la seguridad de las transferencias de datos.
La limitación de velocidad es un término general que se refiere a los esfuerzos para establecer cantidades máximas de solicitudes, lo que puede ayudar a prevenir ataques DDoS y mantener la estabilidad del sistema. También se pueden aplicar diferentes límites a diferentes endpoints de API.
Si los ataques se generan desde una ubicación en particular, el filtrado geográfico se puede utilizar para bloquear o limitar el acceso desde esas ubicaciones.
La puerta de enlace de API es una capa de software que actúa como intermediario entre los dispositivos cliente y los servidores. Es un punto central que acepta todas las llamadas de API y las dirige hacia los servicios solicitados. Muchas de estas características de seguridad (además de las características de monitoreo y análisis de API) se pueden implementar dentro de una puerta de enlace de API; además, el uso de una puerta de enlace de API promueve la aplicación uniforme de protocolos de seguridad en todo un entorno de API.
Los recursos de API son conjuntos de datos u objetos que proporcionan las API. Los recursos varían según la API en cuestión, pero los tipos de contenido incluyen texto, tablas, archivos fuente, audio, video, imágenes, usuarios, productos y mucho más.
Un endpoint de API es la ubicación específica de esos recursos en un servidor. Es un punto de contacto entre un cliente de API y un servidor, donde se dirigen las llamadas de API.
Piense en el anuncio de una tienda. La lista proporciona la ubicación de la tienda (endpoint) y cómo comunicarse con ella para solicitar información como horarios de atención e inventario de productos (recursos).
Una clave de API es un método para verificar y autenticar la identidad y autenticidad de un cliente que realiza una llamada de API. Las claves de API son cadenas de caracteres generados de manera aleatoria emitidos por un proveedor de API a los usuarios de API registrados. Cuando un dispositivo cliente realiza una llamada a la API, incluye la clave de API. La puerta de enlace de API o el servidor de API que recibe la llamada primero verifica la clave para validar la identidad del cliente antes de cumplir con la solicitud de API. Si la clave no coincide con ninguna de las claves permitidas, el servidor rechaza la llamada de API y emite un mensaje de rechazo.
Las organizaciones utilizan claves de API para autenticar clientes y proyectos individuales, rastrear e identificar patrones de tráfico, bloquear el uso no deseado y más.
Los endpoints de API, como se explicó, actúan como una interfaz entre clientes y servidores donde los clientes de API dirigen solicitudes de determinados datos o funciones desde una API. Las claves de API se pueden utilizar para mejorar la seguridad de todo el entorno de API de una empresa y sus integraciones de API.
La automatización impulsada por IA amplía la agilidad en API, aplicaciones, eventos, archivos y B2B/EDI.
Desbloquee el potencial de negocio con las soluciones de integración de IBM, que conectan aplicaciones y sistemas para acceder a datos críticos de forma rápida y segura.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de asesoramiento en la nube de IBM. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de expertos.
1 “What is a REST API?”, IBM.com
2 “What is GraphQL?”, Chrystal China, Michael Goodwin, 8 de diciembre de 2023
3 “GraphQL vs. REST API: What’s the difference?”, Chrystal China, 29 de marzo de 2024