- Introducción
- Primeros pasos
- Modelado de procesos con BPMN
- Comprender el modelado del proceso
- Abrir el lienzo de modelado
- Modelar tu proceso
- Alinear y conectar elementos BPMN
- Autopilot para Maestro (vista previa)
- Repositorio de procesos
- Modelado de procesos con gestión de casos
- Diseñar un esquema de entidad de caso persistente
- Definir claves de caso (de sistema o externo)
- Establecer contratos de entrada/salida y de escritura diferida de tareas
- Reglas de salida y terminación temprana de etapas
- Modelar las etapas principal y secundaria
- Iniciar un caso desde Data Fabric
- Implementar perfiles y permisos a nivel de etapa
- Establecer SLA y reglas de escalado automatizadas
- Configurar un bucle de reprocesamiento (reingreso)
- Gestionar instancias de casos en ejecución: pausar, migrar y reintentar
- Diccionario de componentes de la gestión de casos de Maestro
- Modelado de procesos con Flow
- Implementación del proceso
- Depuración
- Simular
- Publicar y actualizar procesos de agente
- Escenarios de implementación comunes
- Extracción y validación de documentos
- Operaciones de proceso
- Supervisión de procesos
- Optimización de procesos
- Información de referencia
Configuración del nodo de solicitud HTTP, autenticación y patrones de ramificación de respuesta.
Lo que hace
Envía una solicitud HTTP a una URL y pone la respuesta a disposición de los nodos posteriores.
Dos nodos HTTP
Flow ofrece dos nodos HTTP. Elige en función de cómo quieres gestionar la autenticación:
- Solicitud HTTP (
core.action.http): configura el método, la URL, los encabezados, el cuerpo y la autenticación en línea. Úsalo para cualquier punto final REST externo en el que gestiones las credenciales tú mismo, por ejemplo, un encabezado de clave API o un token al portador. Este es el nodo documentado en esta página. - Solicitud HTTP administrada (
core.action.http.v2): realiza la solicitud a través de una conexión administrada de Integration Service, por lo que la autenticación es manejada por esa conexión en lugar de configurarse en línea. Úsalo cuando quieras una gestión de credenciales centralizada en un servicio que hayas conectado a través de Integration Service.
Referencia de configuración
| Campo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|
| Mode | Sí | Manual | Cómo se configura la solicitud. Selecciona Manual para definir la solicitud tú mismo, o Definición de API para importar la configuración desde una especificación OpenAPI o Swagger. |
| Importar desde cURL | No | Ninguno | Analiza un comando cURL y rellena el método, la URL, los encabezados y el cuerpo automáticamente. Selecciona el botón cURL en la barra de herramientas encima de los campos de configuración. |
| Método HTTP | Sí | GET | Método HTTP para la solicitud. Los valores admitidos son GET, POST, PUT, PATCH y DELETE. |
| URL | Sí | Ninguno | URL completa a la que enviar la solicitud, incluido el esquema https:// . Admite expresiones variables, por ejemplo https://api.example.com/users/$vars.userId. |
| Encabezados | No | Ninguno | Pares de clave-valor enviados como encabezados de solicitud HTTP. Los nombres y valores de encabezado admiten expresiones de variables. |
| Parámetros de consulta | No | Ninguno | Pares de clave-valor anexados a la URL como cadena de consulta. Los nombres y valores admiten expresiones de variables. |
| Tipo de contenido | No | application/json | Tipo de extensiones de correo de Internet multipropósito (MIME) del cuerpo de la solicitud. Los valores admitidos son application/json, application/xml, text/plain y application/x-www-form-urlencoded. |
| Cuerpo | No | Vacío | Cuerpo de la solicitud para las solicitudes POST, PUT y PATCH . Introduce el valor directamente en el editor de código o utiliza expresiones variables. |
| Ramas | No | Solo salida predeterminada | Ramas de respuesta que enrutan el proceso en función de las propiedades de respuesta. Cada rama tiene un nombre y una expresión de condición. |
| Tiempo de espera | No | PT15M | Tiempo máximo de espera para una respuesta, en formato de duración de la Organización Internacional de Normalización (ISO) 8601. |
| Número de reintentos | No | 0 | Número de veces para reintentar la solicitud si falla. Los reintentos utilizan el valor de tiempo de espera como intervalo de retroceso. |
El editor sugiere nombres de encabezado comunes como Authorization, Content-Type, Accept, X-Api-Key y otros. Para los parámetros de consulta, añadir un parámetro con el nombre page y el valor 2 envía la solicitud a https://api.example.com/items?page=2.
El nodo evalúa las condiciones de la rama en orden y sigue la primera coincidencia. Si ninguna rama coincide, el proceso sigue la salida predeterminada .
Las expresiones de condición de rama utilizan la misma sintaxis de JavaScript que los nodos de decisión y conmutador:
$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode >= 400
$vars.httpRequest1.output.statusCode >= 400
Cada rama aparece como un controlador de salida independiente en el lado derecho del nodo en el lienzo, junto con el controlador Predeterminado .
Valores de tiempo de espera comunes:
PT30S- 30 segundosPT5M- 5 minutosPT15M- 15 minutosPT1H- 1 hora
Credenciales
Puedes autenticar solicitudes de dos maneras.
Autenticación manual
Pasa las credenciales directamente en los encabezados de las solicitudes. Para la autenticación de clave API, añade un encabezado con el nombre X-Api-Key y el valor establecido a tu clave. Para la autenticación del token al portador, añade un encabezado Authorization con un valor como Bearer <your-token>.
Almacena valores confidenciales como tokens y claves API en variables secretas en lugar de codificarlos.
Conector de Integration Service
Selecciona una conexión preconfigurada de Integration Service en el panel de propiedades. La conexión inyecta credenciales en la solicitud automáticamente, por lo que no necesitas gestionar los encabezados tú mismo.
Usa un conector de Integration Service cuando quieras una gestión de credenciales centralizada, una actualización automática de tokens o cuando varios procesos compartan las mismas credenciales de API.
Los conectores de Integration Service se configuran en el portal de UiPath Automation Cloud. Consulta la documentación de Integration Service para obtener instrucciones de configuración.
Ejemplos
Ejemplo 1: solicitud GET básica
Obtener un único recurso de una API pública.
El nodo está configurado con el método HTTP establecido en GET y la URL establecida en https://jsonplaceholder.typicode.com/posts/1. Todos los demás campos permanecen en sus valores predeterminados.
La respuesta está disponible en un nodo de Script posterior:
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.statusCode;
return {
title: body.title,
userId: body.userId,
status: status
};
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.statusCode;
return {
title: body.title,
userId: body.userId,
status: status
};
El objeto de respuesta está disponible en $vars.httpRequest1.output y contiene tres campos:
$vars.httpRequest1.output.body: el cuerpo de la respuesta analizado$vars.httpRequest1.output.statusCode: el código de estado HTTP, por ejemplo200$vars.httpRequest1.output.headers: un objeto que contiene los encabezados de respuesta
Ejemplo 2: solicitud POST con un cuerpo JSON
Crea un nuevo recurso enviando una carga útil JSON.
El nodo está configurado con el método HTTP establecido en POST, la URL establecida como https://api.example.com/orders, un encabezado Authorization con el valor Bearer $vars.apiToken y el tipo de contenido como application/json. El cuerpo:
{
"product": "Widget",
"quantity": 5,
"customer_id": "cust_12345"
}
{
"product": "Widget",
"quantity": 5,
"customer_id": "cust_12345"
}
El ID del recurso creado está disponible en un nodo descendente:
const orderId = $vars.httpRequest1.output.body.id;
return { orderId: orderId };
const orderId = $vars.httpRequest1.output.body.id;
return { orderId: orderId };
Si la solicitud falla y has conectado un controlador de error, los detalles del error están disponibles en $vars.httpRequest1.error:
// In a Script node connected to the error handle
const errorMessage = $vars.httpRequest1.error.message;
const errorStatus = $vars.httpRequest1.error.status;
return {
failed: true,
reason: errorMessage,
httpStatus: errorStatus
};
// In a Script node connected to the error handle
const errorMessage = $vars.httpRequest1.error.message;
const errorStatus = $vars.httpRequest1.error.status;
return {
failed: true,
reason: errorMessage,
httpStatus: errorStatus
};
El objeto de error contiene:
codemessagedetailcategorystatus
Ejemplo 3: enrutar respuestas con ramas
Las ramas de respuesta permiten que el proceso siga diferentes rutas en función de la respuesta de la API sin un nodo de decisión independiente.
El nodo está configurado con el método HTTP establecido en GET, la URL establecida en https://api.example.com/users/$vars.userId y dos ramas en la sección Ramas : Success con la condición $vars.httpRequest1.output.statusCode === 200 y Not Found con la condición $vars.httpRequest1.output.statusCode === 404.
El nodo ahora tiene tres controladores de salida en el lienzo:
- Correcto : se conecta a los nodos que procesan los datos del usuario
- No encontrado : se conecta a los nodos que gestionan el caso de usuario que falta
- Predeterminado : se conecta a una ruta alternativa para cualquier otro código de estado
Cada ruta descendente recibe la respuesta completa. Por ejemplo, en la rama Éxito:
const user = $vars.httpRequest1.output.body;
return { name: user.name, email: user.email };
const user = $vars.httpRequest1.output.body;
return { name: user.name, email: user.email };
Cuándo utilizar esto frente a un nodo de integración
Utiliza el nodo de solicitud HTTP como herramienta de propósito general para llamar a cualquier API. Utiliza un nodo de integración dedicado cuando exista uno para el servicio al que estás llamando.
| Utilizar solicitud HTTP cuando... | Utiliza un nodo de integración cuando... |
|---|---|
| La API no tiene un conector dedicado en la paleta del nodo | Existe un conector para el servicio, como Slack, Salesforce o HubSpot |
| Necesitas un control completo sobre los encabezados, los parámetros de consulta y el formato del cuerpo | Quieres entradas y salidas predefinidas sin configuración manual |
| Está creando prototipos para una nueva API o servicio interno | Quieres autenticación automática y actualización de token a través de Integration Service |
| La API utiliza un esquema de autenticación no estándar | Quieres un proceso mantenible que no se rompa si la API cambia su contrato |
Regla general: busca primero un conector en la paleta de nodos. Vuelve a la solicitud HTTP solo si no existe nada para tu servicio de destino.
Páginas relacionadas
- Nodo de script : transforma y procesa datos de respuesta HTTP
- Nodo de decisión : rama en condiciones, como alternativa a las ramas de respuesta
- Variables y flujo de datos :
$vars, sintaxis de expresión y ámbito de variable
- Lo que hace
- Dos nodos HTTP
- Referencia de configuración
- Credenciales
- Autenticación manual
- Conector de Integration Service
- Ejemplos
- Ejemplo 1: solicitud GET básica
- Ejemplo 2: solicitud POST con un cuerpo JSON
- Ejemplo 3: enrutar respuestas con ramas
- Cuándo utilizar esto frente a un nodo de integración
- Páginas relacionadas