Invia richiesta HTTP
L’azione Invia richiesta HTTP collega il flusso di lavoro a un server web o a un URL e invia richieste HTTP.
Dopo che Flow ha inviato la richiesta HTTP, attende un massimo di 30 secondi per ricevere un codice di risposta HTTP. Se Flow non riceve una risposta dopo 30 secondi, chiude la connessione alla tua app. Successivamente, ritenta la richiesta.
Campi
L’azione Invia richiesta HTTP contiene i campi seguenti.
| Campo | Descrizione |
|---|---|
| Metodo HTTP | Il metodo della richiesta HTTP da inviare. Invia richiesta HTTP L’azione supporta i seguenti metodi:
|
| URL | L’URL del server a cui viene inviata la richiesta HTTP. |
| Header | La coppia chiave-valore per la richiesta HTTP. È possibile inserire più coppie chiave-valore. |
| Corpo | Il contenuto da inviare al server. |
| In caso di errore del client (risposta 4XX) | Quando si riceve un codice di risposta che indica un errore del client, Flow eseguirà una delle seguenti operazioni:
|
| In caso di errore del server (risposta 5XX o 429) | Quando si riceve un codice di risposta che indica un errore del server, Flow eseguirà una delle seguenti operazioni:
|
Dati restituiti
Per accedere ai dati restituiti nei passaggi che seguono questa azione, utilizza la variabile denominata sendHttpRequest, che include tutti i dettagli della risposta HTTP. Facoltativamente, puoi utilizzare un’azione Esegui codice per analizzare il body della risposta da utilizzare nei passaggi successivi del flusso di lavoro, come nell’esempio seguente.
Se un'azione Invia richiesta HTTP viene utilizzata più volte in un singolo flusso di lavoro, viene aggiunto un numero al nome della variabile. Ad esempio, in un flusso di lavoro che utilizza due volte l'azione Invia richiesta HTTP, la prima variabile per i dati restituiti è sendHttpRequest e la seconda variabile è sendHttpRequest1. Questo nome non può essere personalizzato.
Codici di risposta
La tabella seguente descrive il modo in cui Flow elabora il codice di risposta HTTP dopo aver ricevuto una risposta.
| Codice di risposta HTTP | Modo in cui Flow elabora il codice di risposta |
|---|---|
| 2XX o 3XX Operazione riuscita | Flow contrassegna la richiesta HTTP come riuscita ed esegue le azioni successive nel flusso di lavoro. |
| Errori 4XX, Errori 5XX e 429 | A seconda di come è configurata l’azione, Flow:
|
| Altro codice di risposta | Se la risposta restituisce un codice non descritto in questa tabella o scade il tempo durante il nuovo tentativo delle azioni, Flow contrassegna la richiesta HTTP come non riuscita, contrassegna l’esecuzione del flusso di lavoro come non riuscita e non esegue le azioni successive del flusso di lavoro. |
Segreti
I segreti vengono utilizzati per archiviare in modo sicuro i dati sensibili da utilizzare nell'azione Invia richiesta HTTP, come i token di accesso o le password. I segreti vengono creati e gestiti dalla pagina Flow > Impostazioni. Un segreto contiene un handle, un valore e una descrizione. Fai riferimento al segreto come variabile Liquid (ad esempio {{secrets.handle}}) o dall'opzione Aggiungi segreto quando configuri i campi URL, Valore dell'header o Body. I valori dei segreti non sono mai visibili nell'interfaccia di Flow e vengono oscurati dai log delle esecuzioni del flusso di lavoro.
Trigger
L’azione Invia richiesta HTTP può essere utilizzata in qualsiasi flusso di lavoro.
Esempi
Esempio 1: inviare una richiesta HTTP a un servizio esterno
In questo esempio, utilizzerai Flow per inviare una richiesta HTTP a un servizio esterno.
Prima di iniziare, configura un servizio web che riceva le richieste HTTP e ne archivi i dati per i test, come Request Catcher. Ricorda di prestare attenzione quando invii dati sensibili (come password o chiavi API) a un servizio di terze parti.
Passaggi:
- Scegli il trigger Stato del prodotto aggiornato, che ti consente di testare questo flusso di lavoro modificando lo stato di un prodotto.
- Aggiungi un’ Invia richiesta HTTP azione al flusso di lavoro e collegala al trigger. Quindi, apri il pannello di configurazione cliccando sul passaggio Invia richiesta HTTP .
- Nel campo Metodo HTTP, inserisci
POST. - Nel campo URL, inserisci l’URL su cui eseguire il test, ad esempio
https://yourFlowTest.requestcatcher.com/test. - Nella sezione Header, inserisci un header con Chiave
Content-Typee Valoretext/plain. - Nella sezione Corpo, inserisci
{{product.title}}e{{product.status}}per inviare il titolo e lo stato aggiornato del prodotto dal trigger.
- Nel campo Metodo HTTP, inserisci
- Attiva il flusso di lavoro.
- Testalo modificando lo stato di un prodotto, ad esempio da Bozza a Attivo.
- Osserva i risultati nel servizio di test esterno, come
https://yourFlowTest.requestcatcher.com/in questo esempio.
Esempio 2: utilizzo di Run code per analizzare una risposta HTTP
In questo esempio, utilizza Flow per inviare una richiesta HTTP a un servizio esterno e un’azione Run code per analizzare il body della risposta HTTP da utilizzare nei passaggi successivi del flusso di lavoro.
Prima di iniziare, scegli un servizio web che riceva richieste HTTP e restituisca dati, come Postman Echo. Ricorda di prestare attenzione quando invii dati sensibili (come password o chiavi API) a un servizio di terze parti.
Passaggi:
Scegli il trigger Stato del prodotto aggiornato, che ti consente di testare questo flusso di lavoro modificando lo stato di un prodotto.
Aggiungi un’azione Invia richiesta HTTP al flusso di lavoro e collegala al trigger. Quindi, apri il pannello di configurazione cliccando sul passaggio Invia richiesta HTTP.
Nel campo Metodo HTTP, inserisci
POST.Nel campo URL, inserisci l’URL su cui eseguire il test, ad esempio
https://postman-echo.com/post.Nella sezione Header, inserisci un header con Chiave
Content-Typee Valoreapplication/json.Nella sezione Corpo, inserisci l’esempio di JSON da restituire al flusso di lavoro, ad esempio:
{ "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
Aggiungi un’azione Run code al flusso di lavoro e collegala all’azione Invia richiesta HTTP. Quindi, apri il pannello di configurazione cliccando sul passaggio Run code.
Nel campo Definisci input, includi il
bodyrestituito dall’oggettosendHTTPrequest, ad esempio:query{ sendHttpRequest { body } }Nel campo Definisci output, definiti nello schema di output, ad esempio:
type Output { productTitle: String! productStatus: String! }Nel campo Scrivi codice, analizza la risposta utilizzando il metodo
JSON.parsee assicurati che i dati restituiti corrispondano alla forma e ai tipi definiti nello schema di output, ad esempio: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 } }
Aggiungi un’azione Registra output al flusso di lavoro e collegala all’azione Run code. Quindi, apri il pannello di configurazione cliccando sul passaggio Run code.
Nel campo Output, includi le variabili restituite dal passaggio Run code, ad esempio:
Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
Attiva il flusso di lavoro.
Testalo modificando lo stato di un prodotto, ad esempio da Bozza a Attivo.
Osserva l’esecuzione risultante dalla pagina Flow / Esecuzioni recenti e nota che i valori nel passaggio Registra output corrispondono ai valori restituiti dall’output Invia richiesta HTTP.
Modelli
Informa il fornitore di servizi logistici degli ordini in arrivo
Invia una richiesta HTTP al fornitore di servizi logistici quando agli ordini viene aggiunto il tag «Warehouse» in Order Tagger. Visualizza modello
Invia nuovi ordini ad Airtable
Invia gli ordini ad Airtable quando viene creato un ordine. Visualizza modello
Invia tutti i prodotti nuovi ed esistenti ad Airtable
Ogni 10 minuti, trova i prodotti che non sono stati inviati ad Airtable (tramite tag) e inviali ad Airtable. Visualizza modello
Aggiorna i prodotti in lotti dai dati dei prodotti archiviati in Airtable
Aggiorna i prodotti in lotti dai dati dei prodotti archiviati in Airtable. Visualizza modello
Informa i clienti dei buoni regalo in scadenza utilizzando SendGrid
Ogni giorno, ottieni tutti i buoni regalo in scadenza tra 7 giorni e invia email ai clienti utilizzando SendGrid. Visualizza modello
Invia email con SendGrid quando i clienti effettuano un ordine per un articolo personalizzato
Invia un’email transazionale utilizzando SendGrid quando un cliente effettua un ordine per un articolo personalizzato. Visualizza modello