¿Qué es un endpoint de API?

Vista aérea del puerto Victoria de Hong Kong

Autores

Dan Nosowitz

Staff Writer, Automation & ITOps

IBM Think

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

¿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 éstas y suelen adoptar 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 utilizar una API, los desarrolladores pueden beneficiarse de los datos y los servicios ya existentes; y los propietarios de aplicaciones pueden compartir o comercializar esos mismos datos y servicios.

Los endpoints funcionan un poco como 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 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 API y ayuda a conectar el cliente API con el recurso que está solicitando. Básicamente, le dice al servidor: "el recurso que necesito se encuentra aquí".

Los endpoint de API pueden permitir a un cliente de API solicitar todo tipo de datos a una API, con casos de uso que van desde actualizaciones en tiempo real de aplicaciones de software de redes sociales hasta funciones como el embedding de audio o vídeo, la recuperación de noticias o la creación de una nueva publicación.

Vista aérea de 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 endpoint de API?

Los endpoints de API correctamente formateados y seguros son una parte crucial del funcionamiento de las API. Las API simplifican el diseño y el desarrollo de nuevas aplicaciones y servicios (porque permiten a los desarrolladores crear capacidades y servicios existentes) y la integración y gestión de los existentes. También ofrecen ventajas significativas a los desarrolladores y a las organizaciones en general, como la mejora de la colaboración, la aceleración de la innovación, el aumento de la agilidad, la escalabilidad y la seguridad, entre otras. Los endpoints de API permiten el intercambio de recursos que hace posible dicha integración.

Para que las API funcionen correctamente, los endpoint de la API deben ser precisos, intuitivos, detectables y autenticados, ya que de lo contrario la comunicación entre el cliente y el servidor puede interrumpirse, lo que afecta a la funcionalidad y la satisfacción del usuario. En pocas palabras, los endpoint de API permiten a los clientes de la API localizar y acceder correctamente a los recursos y funciones solicitados.

webMethods Hybrid Integration

Reinvente la integración para la era de la IA

IBM Web Methods Hybrid Integration muestra cómo las empresas pueden conectar de manera fluida aplicaciones en la nube y on-premises, lo que permite una transformación digital ágil y escalable. 

¿Cómo funcionan los endpoints de API? 

Los endpoints de API suelen encontrarse en la documentación de una API, que es donde los desarrolladores ponen información de la API, como qué tipo de solicitudes aceptará una API y cómo deben formatearse las solicitudes. Lo ideal sería que esta documentación también incluyera 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 las aplicaciones web), el proceso tiene este aspecto:

El proceso comienza cuando un cliente de API envía una solicitud de recursos (llamada a API) al endpoint de API correspondiente. Se accede a los endpoints 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 desea recuperar una lista de los totales de medallas olímpicas de un determinado año de la hipotética base de datos Olympicfacts.com, se envía una solicitud GET a la siguiente dirección URL de endpoint: 

https://api.olympicfacts.com/v1/{year}

Esta solicitud devolvería una lista del total 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 el control de versiones de API). Si el cliente quisiera un 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 sobre qué país desea recibir información el cliente.

Además, una solicitud puede 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: se pueden agregar parámetros de consulta 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 solicitud: un cuerpo de 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 API Gateway para ejecutar estas funciones y administrar el flujo de tráfico de API.

¿Cuál es la diferencia entre la 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 deben interactuar los clientes con las API.2

GraphQL y REST son tecnologías basadas en recursos que admiten formatos de datos similares (JSON y XML, por ejemplo) y permiten a los clientes solicitar datos a los servidores mediante métodos HTTP. Sin embargo, difieren en sus requisitos de solicitud y recuperación de datos, entre otros aspectos. Nos centraremos en una diferencia clave relacionada con el endpoint.

Las API REST utilizan varios endpoints y tienen endpoints diferentes 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 overfetching. Si un cliente necesita datos distribuidos en varios recursos, debe realizar llamadas API independientes a cada uno de esos recursos para compilar los datos necesarios.

GraphQL expone modelos de datos utilizando un único endpoint y utiliza 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 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 underfetching y overfetching y la necesidad de realizar varias 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 de cualquier buen diseño de API es la fase de prueba. Las aplicaciones modernas suelen utilizar API para integrar funciones de otro software o se crean mediante arquitecturas de microservicios (que se basan en las API para la comunicación entre distintos servicios). Probar los endpoints de la API es esencial para garantizar la fiabilidad.

Existen opciones de prueba manuales para las API y opciones de prueba que utilizan la automatización, así como numerosas herramientas y plataformas de prueba (tanto de código abierto como propias) que las empresas pueden utilizar.

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 asegurarse de que se da 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 en 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 el servidor maneja 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 no válida para comprobar que se devuelve 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 error humano

  • es más eficaz a la hora de comprobar la validez de varios endpoints de API

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

  • alinea las pruebas con protocolos, estándares y permisos uniformes

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

Cómo proteger los endpoints de API

Dado que los endpoint de las API permiten a las aplicaciones y sistemas internos y externos acceder a los datos e integrarlos, también representan un posible punto de entrada para los delincuentes. Los ataques de denegación de servicio distribuido (DDoS) pueden utilizar solicitudes legítimas, pero en cantidades absurdas, para inundar un servidor. Otros tipos de ataques pueden intentar utilizar los endpoint de la API para extraer más información de la que el cliente está autorizado a recibir o utilizar los endpoint de la API para instalar malware o código malicioso.

Hay varias formas en que una organización puede mantener la seguridad de sus endpoints de API y la seguridad general de la API, entre ellas:

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 la 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 por establecer cantidades máximas de peticiones, lo que puede ayudar a prevenir ataques DDoS y mantener la estabilidad del sistema. También se pueden aplicar límites diferentes a los distintos endpoints de la API.

Filtrado geográfico

Si los ataques se generan desde una ubicación concreta, se puede utilizar el geofiltro para bloquear o limitar el acceso desde esas ubicaciones.

Pasarelas de API

Una pasarela API es una capa de software que actúa como intermediaria entre los dispositivos cliente y los servidores. Es un punto central que acepta todas las llamadas API y las enruta a los servicios solicitados. Muchas de estas funciones de seguridad (además de monitorización de API y funciones de análisis) pueden implementarse dentro de una pasarela de API; y el uso de una pasarela promueve la aplicación coherente 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, vídeo, 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 API y un servidor, donde se dirigen las llamadas API.

Piense en el anuncio de una tienda. El listado proporciona la ubicación de la tienda (endpoint) y cómo contactarla para solicitar información como el horario de la tienda y el 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 la autenticidad de un cliente que realiza una llamada a la API. Las claves de API son cadenas de caracteres generados aleatoriamente 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 la API. La pasarela API o el servidor API que recibe la llamada comprueba primero la clave para validar la identidad del cliente antes de atender la solicitud API. Si la clave no coincide con ninguna de las claves permitidas, el servidor rechaza la llamada a la API y emite un mensaje de rechazo.

Las organizaciones utilizan claves API para autenticar clientes y proyectos individuales, rastrear e identificar patrones de tráfico, bloquear usos no deseados y más.

Los endpoints de API, como se ha comentado, actúan como una interfaz entre clientes y servidores donde los clientes de API dirigen solicitudes de ciertos 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 con IA amplía la agilidad a través de 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.

Explore 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 consultoría de IBM Cloud. Descubra cómo cocrear soluciones, acelerar la transformación digital y optimizar el rendimiento mediante estrategias de nube híbrida y colaboraciones con expertos.

Explore los servicios en la nube
Dé el siguiente paso

 

IBM webMethods Hybrid Integration ofrece una interfaz unificada y un plano de control 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 a 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.