¿Qué es un endpoint de API?

 5 de agosto de 2024

Autores

Michael Goodwin

Editorial lead, Automation & ITOps

¿Qué es un endpoint de API?

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. 

Vista aérea de una autopista

Mantenga su cabeza en la nube


Reciba el boletín semanal Think para obtener orientación de expertos sobre cómo optimizar la configuración multinube en la era de la IA.

¿Por qué son importantes los endpoints de API?

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.

Academia de IA

Cómo lograr la preparación para la IA con la nube híbrida

Dirigido por los principales líderes de opinión de IBM, el plan de estudios está diseñado para ayudar a los líderes empresariales a obtener los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

¿Cómo funcionan los endpoints de API? 

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:

  • Encabezados: los encabezados pueden proporcionar información adicional sobre la solicitud, como un encabezado de aceptación que especifica los tipos de medios aceptados

  • Parámetros: los parámetros de consulta se pueden agregar a la URL base o en el cuerpo de la solicitud para filtrar aún más los criterios de búsqueda o agregar otras especificaciones.

  • Cuerpo de la solicitud: el cuerpo de la solicitud incluye los datos necesarios para crear o modificar un recurso. Por ejemplo, si la solicitud es para crear un nuevo blog (solicitud POST), el contenido del nuevo blog se incluiría en el cuerpo de la solicitud.

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.

¿Cuál es la diferencia entre API REST y los endpoints GraphQL?

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).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

¿Cómo se realizan las pruebas de API?

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: 

  • enviar muchas solicitudes a la vez para ver cómo maneja el servidor la carga de solicitudes

  • comprobar que la API se integra correctamente con otros servicios

  • determinar la velocidad y el tiempo de respuesta de una solicitud determinada

  • proporcionar intencionalmente una solicitud inválida para verificar que se devuelva el mensaje de error correcto

Las pruebas automatizadas realizadas a través de una plataforma de gestión de API pueden ofrecer varias ventajas:

  • reduce la posibilidad de errores humanos

  • es más eficiente para verificar la validez de múltiples endpoints de API

  • puede mejorar la velocidad de las pruebas y reducir potencialmente los costos a largo plazo, una vez que se establezcan sistemas de pruebas automatizados (ahorrando tiempo de los empleados, por ejemplo)

  • alinea las pruebas con protocolos, normas y permisos uniformes

En general, cada uno debe devolver la respuesta prevista, en términos de formato, los datos devueltos y el código de estado.

Cómo proteger los endpoints de API

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:

Mecanismos de autenticación

Los métodos de autenticación, como la autenticación de clave API y OAuth , garantizan que solo los usuarios autorizados puedan acceder a los datos.

HTTPS

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.

Limitación de velocidad

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.

Filtrado geográfico

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.

API Gateways

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.

¿Cuál es la diferencia entre un recurso y un endpoint 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).

¿Cuál es la diferencia entre una clave de API y un endpoint de API?

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.

Soluciones relacionadas
IBM webMethods Hybrid Integration

La automatización impulsada por IA amplía la agilidad en API, aplicaciones, eventos, archivos y B2B/EDI.

Explore IBM webMethods Hybrid Integration
Software y soluciones de integración

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.

Explorar las soluciones de integración en la nube
Servicios de consultoría en la nube 

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.

Explore los servicios en la nube
Dé el siguiente paso

 

IBM webMethods Hybrid Integration ofrece una interfaz y un plano de control unificados para patrones de integración, aplicaciones, API, B2B y archivos, y escala la agilidad entre ubicaciones, entornos y equipos.

 

 

Explore IBM webMethods Hybrid Integration Véalo en acción
Notas de pie de página

What is a REST API?”, IBM.com

What is GraphQL?”, Chrystal China, Michael Goodwin, 8 de diciembre de 2023

GraphQL vs. REST API: What’s the difference?”, Chrystal China, 29 de marzo de 2024