Enviar solicitud HTTP
La acción Enviar solicitud HTTP conecta el flujo de trabajo con un servidor web o una URL y envía solicitudes HTTP.
Después de que Flow envía la solicitud HTTP, espera como máximo 30 segundos para recibir un HTTP response code. Si Flow no recibe una respuesta después de 30 segundos, cierra la conexión con la aplicación. Luego vuelve a intentar la solicitud.
Campos
La acción Enviar solicitud HTTP incluye los siguientes campos.
| Campo | Descripción |
|---|---|
| Método HTTP | El método de solicitud HTTP que se enviará. La Enviar solicitud HTTP acción admite los siguientes métodos:
|
| URL | La URL del servidor al que se envía la solicitud HTTP. |
| Encabezados | El par clave-valor de la solicitud HTTP. Se pueden ingresar varios pares clave-valor. |
| Cuerpo | El contenido que se enviará al servidor. |
| Error del cliente (respuesta 4XX) | Cuando reciba un código de respuesta que indica un error del cliente, Flow hará lo siguiente:
|
| Error del servidor (respuesta 5XX o 429) | Cuando reciba un código de respuesta que indica un error del servidor, Flow hará lo siguiente:
|
Datos devueltos
Para acceder a los datos devueltos en los pasos que siguen a esta acción, usa la variable llamada sendHttpRequest, que incluye todos los detalles de la respuesta HTTP. De forma opcional, usa una acción Run code para analizar el body de la respuesta y utilizarlo en pasos posteriores del flujo de trabajo, como en el example a continuación.
Si se usa la acción Enviar solicitud HTTP varias veces en un único flujo de trabajo, se agrega un número al nombre de la variable. Por ejemplo, en un flujo de trabajo que usa la acción Enviar solicitud HTTP dos veces, la primera variable para los datos devueltos es sendHttpRequest y la segunda es sendHttpRequest1. Este nombre no se puede personalizar.
Códigos de respuesta
La siguiente tabla describe cómo procesa Flow el HTTP response code después de recibir una respuesta.
| Código de respuesta HTTP | Cómo procesa Flow el código de respuesta |
|---|---|
| 2XX o 3XX: éxito | Flow marca la solicitud HTTP como correcta y realiza las acciones posteriores del flujo de trabajo. |
| Errores 4XX, errores 5XX y 429 | Según cómo esté configurada la acción, Flow hará lo siguiente:
|
| Otro código de respuesta | Si la respuesta devuelve un código que no se describe en esta tabla o se agota el tiempo al reintentar las acciones, Flow marca la solicitud HTTP como fallida, falla la ejecución del flujo de trabajo y no realiza las acciones posteriores del flujo de trabajo. |
Secretos
Los secretos se usan para guardar de forma segura información confidencial, como los tokens de acceso o las contraseñas, a fin de usarla en la acción Enviar solicitud HTTP. Los secretos se crean y se gestionan desde la página Flow > Configuración. Un secreto contiene un identificador, un valor y una descripción. Haz referencia al secreto como una variable de Liquid (como {{secrets.handle}}) o desde la opción Agregar secreto al configurar los campos de URL, valor de encabezado o cuerpo. Los valores de los secretos nunca son visibles en la interfaz de Flow y se ocultan en los registros de ejecución del flujo de trabajo.
Activadores
La acción Enviar solicitud HTTP se puede usar en cualquier flujo de trabajo.
Ejemplos
Ejemplo 1: enviar una solicitud HTTP a un servicio externo
En este ejemplo, usa Flow para enviar una solicitud HTTP a un servicio externo.
Antes de comenzar, configura un servicio web que reciba solicitudes HTTP y guarde los datos de esas solicitudes para hacer pruebas, como Request Catcher. Recuerda tener cuidado al enviar datos confidenciales (como contraseñas o claves API) a un servicio externo.
Pasos:
- Elige el activador Estado del producto actualizado, que te permite probar este flujo de trabajo cambiando el estado de un producto.
- Agrega la acción Enviar solicitud HTTP a tu flujo de trabajo y conéctala al activador. Luego abre el panel de configuración y haz clic en el Enviar solicitud HTTP paso.
- En el campo Método HTTP, ingresa
POST. - En el campo URL, ingresa la URL para la prueba, por ejemplo:
https://yourFlowTest.requestcatcher.com/test. - En la sección Encabezados, agrega un encabezado con Clave
Content-Typey Valortext/plain. - En la sección Cuerpo, ingresa
{{product.title}}y{{product.status}}para enviar el título y el estado actualizado del producto desde el activador.
- En el campo Método HTTP, ingresa
- Activa el flujo de trabajo.
- Pruébalo cambiando el estado de un producto, por ejemplo, de Borrador a Activo.
- Observa los resultados en el servicio de pruebas externo, como
https://yourFlowTest.requestcatcher.com/en este ejemplo.
Ejemplo 2: usa Ejecutar código para analizar una respuesta HTTP
En este ejemplo, usa Flow para enviar una solicitud HTTP a un servicio externo y la acción Run code para analizar el body de la respuesta HTTP y usarlo en pasos posteriores del flujo de trabajo.
Antes de empezar, elige un servicio web que reciba solicitudes HTTP y devuelva datos, como Postman Echo. Recuerda tener cuidado al enviar datos sensibles (como contraseñas o claves API) a un servicio externo.
Pasos:
Elige el activador Estado del producto actualizado, que te permite probar este flujo de trabajo cambiando el estado de un producto.
Agrega la acción Enviar solicitud HTTP a tu flujo de trabajo y conéctala al activador. Luego abre el panel de configuración y haz clic en el paso Enviar solicitud HTTP.
En el campo Método HTTP, ingresa
POST.En el campo URL, ingresa la URL para la prueba, por ejemplo:
https://postman-echo.com/post.En la sección Encabezados, agrega un encabezado con Clave
Content-Typey Valorapplication/json.En la sección Cuerpo, ingresa el JSON de ejemplo que se devolverá al flujo de trabajo, por ejemplo:
{ "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
Agrega la acción Ejecutar código a tu flujo de trabajo y conéctala a la acción Enviar solicitud HTTP. Luego abre el panel de configuración y haz clic en el paso Ejecutar código.
En el campo Definir entradas, incluye el
bodyque devuelve el objetosendHTTPrequest, por ejemplo:query{ sendHttpRequest { body } }En el campo Definir salidas, que se definen en el esquema de salida, por ejemplo:
type Output { productTitle: String! productStatus: String! }En el campo Escribir código, analiza la respuesta con el método
JSON.parsey asegúrate de que los datos que devuelvas coincidan con la estructura y los tipos definidos en el esquema de salida, por ejemplo:export default function main(input) { const body = JSON.parse(input.sendHttpRequest.body); console.log("body is", body); return { productTitle: body.data.productTitle, productStatus: body.data.productStatus } }
Agrega la acción Registrar salida a tu flujo de trabajo y conéctala a la acción Ejecutar código. Luego abre el panel de configuración y haz clic en el paso Ejecutar código.
En el campo Salida, incluye las variables que devuelve el paso Ejecutar código, por ejemplo:
Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
Activa el flujo de trabajo.
Pruébalo cambiando el estado de un producto, por ejemplo, de Borrador a Activo.
Observa la ejecución resultante en la página Flow / Recent runs y verifica que los valores del paso Registrar salida coincidan con los valores devueltos por la salida de Enviar solicitud HTTP.
Plantillas
Notifica al proveedor de servicios de logística sobre los próximos pedidos
Envía una solicitud HTTP a tu proveedor de servicios de logística cuando los pedidos tengan la etiqueta "Warehouse" en Order Tagger. View template
Envía pedidos nuevos a Airtable
Envía los pedidos a Airtable cuando se cree un pedido. View template
Envía todos los productos existentes y nuevos a Airtable
Cada 10 minutos, busca los productos que no se hayan enviado a Airtable (por etiqueta) y envíalos a Airtable. View template
Actualiza productos por lotes a partir de los datos de producto almacenados en Airtable
Actualiza productos por lotes a partir de los datos de producto que están almacenados en Airtable. View template
Notifica a los clientes sobre tarjetas de regalo próximas a vencer con SendGrid
Cada día, obtén todas las tarjetas de regalo que vencen en 7 días y envía correos electrónicos a los clientes con SendGrid. View template
Envía un correo electrónico con SendGrid cuando un cliente hace un pedido de un artículo personalizado
Envía un correo electrónico transaccional con SendGrid cuando un cliente hace un pedido de un artículo personalizado. View template