- Comience ya
- Crear
- Añadir un agente de IA a un flujo de trabajo
- Llamar a una API externa
- Procesar correos electrónicos entrantes
- Crear un flujo de trabajo de notificación de Slack
- Añadir aprobación humana a un flujo de trabajo
- Crear un flujo de trabajo de agente de chat
- Gestionar errores
- Fundamentos de la depuración
- Intervención humana: escalada o paso humano
- Evaluar tus flujos de trabajo
- Implementar y ejecutar
- Ejemplos
- Referencia
Solicitud HTTP
El nodo de solicitud HTTP envía una solicitud a una dirección web, con su configuración, autenticación y ramificación de respuesta.
Lo que hace
Envía una solicitud HTTP a una URL y hace que la respuesta esté disponible para los nodos posteriores.
Opciones de autenticación
Un nodo de solicitud HTTP cubre ambas formas de autenticación, que eliges en el campo Autenticación :
- Autenticación manual: el método, la URL, los encabezados, el cuerpo y las credenciales se configuran en línea. Se adapta a cualquier punto final externo de Transferencia de estado representacional (REST) donde las credenciales se gestionan en el nodo, por ejemplo, un encabezado de clave API o un token al portador.
- Autenticación basada en conector: la solicitud pasa por una conexión, por lo que la conexión gestiona la autenticación y las credenciales no están configuradas en el nodo. Ajusta la gestión centralizada de credenciales en un servicio que está conectado a través de Integration Service.
Referencia de configuración
| Campo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|
| Importar o exportar | No | Ninguno | Un menú encima de los campos. Importar desde cURL analiza un comando cURL y rellena el método, la URL, los encabezados y el cuerpo automáticamente. |
| Autenticación | Sí | Autenticación manual | Cómo se autentica la solicitud. La autenticación manual pasa las credenciales en los encabezados de la solicitud. La autenticación basada en conector envía la solicitud a través de una conexión, como se describe a continuación. |
| Método | 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:// . En un campo Valor fijo , se inserta un valor con llaves dobles, 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. |
| Pestaña de ramificación | No | Solo salida predeterminada | Ramas de respuesta que enrutan el flujo de trabajo en función de las propiedades de respuesta. Cada rama tiene un nombre y una expresión de condición. |
| Tiempo de espera (pestaña Avanzado ) | 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. |
| Recuento de reintentos (pestaña Avanzado ) | 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. |
Autenticación basada en conector
Cuando la autenticación es Autenticación basada en conector, el panel muestra estos campos en lugar de los manuales:
| Campo | Obligatorio | Descripción |
|---|---|---|
| Conector | Sí | El conector a través del cual enviar la solicitud, por ejemplo Slack. |
| Conexión (llamada así por el conector, por ejemplo Conexión de Slack) | Sí | La conexión que se va a utilizar. |
| Método | Sí | El método HTTP para la solicitud. |
| URL base | No | La URL base del conector, que se muestra como un marcador de posición como https://slack.com/api. |
| Ruta | No | La ruta del punto final para la solicitud de la API REST. |
| Encabezados | No | Pares clave-valor, hasta 20. El conector añade sus propios encabezados Authorization, Accept y Content-Type automáticamente. |
| Parámetros de consulta | No | Pares clave-valor, hasta 20. |
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 flujo de trabajo 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.code === 200
$vars.httpRequest1.output.code === 200
$vars.httpRequest1.output.code >= 400
$vars.httpRequest1.output.code >= 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 segundos.PT5M: 5 minutos.PT15M: 15 minutos.PT1H: 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.
Autenticación basada en conector
Selecciona una conexión 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.
Una conexión se adapta a la gestión centralizada de credenciales, la actualización automática de tokens y los casos en los que varios flujos de trabajo comparten las mismas credenciales de API.
Create a connection describes how to create one.
Ejemplos
Ejemplo 1: solicitud GET básica
Obtener un único recurso de una API pública.
El nodo está configurado con el Método establecido en GET y la URL establecida como 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.code;
return {
title: body.title,
userId: body.userId,
status: status
};
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;
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.code: 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 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 flujo de trabajo 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 establecido en GET, la URL establecida como https://api.example.com/users/{{ $vars.userId }} y dos ramas en la pestaña Ramificación : Success con la condición $vars.httpRequest1.output.code === 200 y Not Found con la condición $vars.httpRequest1.output.code === 404.
El nodo ahora tiene tres controladores de salida en el lienzo:
- Éxito: se conecta a los nodos que procesan los datos del usuario.
- No encontrado: se conecta a los nodos que manejan al 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 };
Elegir entre la solicitud HTTP y 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 el panel Añadir nodo | A connector exists for the service, such as Slack, Salesforce, or HubSpot CRM |
| 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 | Desea una conexión que maneje el inicio de sesión y la actualización del token por usted |
| La API utiliza un esquema de autenticación no estándar | Quieres un flujo de trabajo mantenible que no se rompa si la API cambia su contrato |
Por regla general, buscar primero un conector en el panel Añadir nodo es el mejor orden, con la solicitud HTTP como alternativa cuando no existe nada para el servicio de destino.
Próximos pasos
- Nodo de script: transformar y procesar datos de respuesta HTTP.
- Nodo de decisión: ramificación en condiciones, como alternativa a las ramas de respuesta.
- Variables y flujo de datos:
$vars, sintaxis de expresión y ámbito de variable. - Comunidad: haz preguntas y comparte flujos de trabajo con otros constructores en UiPath Forum.
- Lo que hace
- Opciones de autenticación
- Referencia de configuración
- Autenticación basada en conector
- Credenciales
- Autenticación manual
- Autenticación basada en conector
- Ejemplos
- Ejemplo 1: solicitud GET básica
- Ejemplo 2: solicitud POST con un cuerpo JSON
- Ejemplo 3: enrutar respuestas con ramas
- Elegir entre la solicitud HTTP y un nodo de integración
- Próximos pasos