UiPath Documentation
maestro
latest
false
Guía del usuario de Maestro
Importante :
La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Solicitud HTTP

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

CampoObligatorioPredeterminadoDescripción
ModeManualCó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 cURLNoNingunoAnaliza 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 HTTPGETMétodo HTTP para la solicitud. Los valores admitidos son GET, POST, PUT, PATCH y DELETE.
URLNingunoURL completa a la que enviar la solicitud, incluido el esquema https:// . Admite expresiones variables, por ejemplo https://api.example.com/users/$vars.userId.
EncabezadosNoNingunoPares de clave-valor enviados como encabezados de solicitud HTTP. Los nombres y valores de encabezado admiten expresiones de variables.
Parámetros de consultaNoNingunoPares de clave-valor anexados a la URL como cadena de consulta. Los nombres y valores admiten expresiones de variables.
Tipo de contenidoNoapplication/jsonTipo 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.
CuerpoNoVacíoCuerpo de la solicitud para las solicitudes POST, PUT y PATCH . Introduce el valor directamente en el editor de código o utiliza expresiones variables.
RamasNoSolo salida predeterminadaRamas 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 esperaNoPT15MTiempo 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 reintentosNo0Nú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 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.

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.

Nota:

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 ejemplo 200
  • $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:

  • code
  • message
  • detail
  • category
  • status

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 nodoExiste 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 cuerpoQuieres entradas y salidas predefinidas sin configuración manual
Está creando prototipos para una nueva API o servicio internoQuieres 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ándarQuieres 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.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado