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.

Campi utilizzati nell’azione Invia richiesta HTTP.
CampoDescrizione
Metodo HTTPIl metodo della richiesta HTTP da inviare. Invia richiesta HTTP L’azione supporta i seguenti metodi:
  • Get: invia una richiesta di informazioni dal server.
  • Delete: rimuove una risorsa dal server.
  • Head: recupera gli header di risposta HTTP del server.
  • Options: recupera le opzioni e le funzionalità supportate dal server.
  • Patch: aggiorna parzialmente una risorsa sul server.
  • Put: aggiorna una risorsa sul server.
  • Post: crea o sostituisce una risorsa sul server.
URLL’URL del server a cui viene inviata la richiesta HTTP.
HeaderLa coppia chiave-valore per la richiesta HTTP. È possibile inserire più coppie chiave-valore.
CorpoIl 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:
  • Riprova: esegue un nuovo tentativo per un massimo di 24 ore fino a quando non riceve un codice di risposta diverso o scade il tempo.
  • Non riuscito: contrassegna l’esecuzione del flusso di lavoro come non riuscita.
  • Ignora: ignora l’errore e continua l’esecuzione del flusso di lavoro.
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:
  • Riprova: esegue un nuovo tentativo per un massimo di 24 ore fino a quando non riceve un codice di risposta diverso o scade il tempo.
  • Non riuscito: contrassegna l’esecuzione del flusso di lavoro come non riuscita.
  • Ignora: ignora l’errore e continua l’esecuzione del flusso di lavoro.

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.

Modo in cui Flow elabora i codici di risposta HTTP.
Codice di risposta HTTPModo in cui Flow elabora il codice di risposta
2XX o 3XX Operazione riuscitaFlow 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:
  • Riprova: esegue un nuovo tentativo per un massimo di 24 ore fino a quando non riceve un codice di risposta diverso o scade il tempo.
  • Non riuscito: contrassegna l’esecuzione del flusso di lavoro come non riuscita.
  • Ignora: ignora l’errore e continua l’esecuzione del flusso di lavoro.
Altro codice di rispostaSe 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:

  1. Scegli il trigger Stato del prodotto aggiornato, che ti consente di testare questo flusso di lavoro modificando lo stato di un prodotto.
  2. 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-Type e Valore text/plain.
    • Nella sezione Corpo, inserisci {{product.title}} e {{product.status}} per inviare il titolo e lo stato aggiornato del prodotto dal trigger.
  3. Attiva il flusso di lavoro.
  4. Testalo modificando lo stato di un prodotto, ad esempio da Bozza a Attivo.
  5. 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:

  1. Scegli il trigger Stato del prodotto aggiornato, che ti consente di testare questo flusso di lavoro modificando lo stato di un prodotto.

  2. 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-Type e Valore application/json.

    • Nella sezione Corpo, inserisci l’esempio di JSON da restituire al flusso di lavoro, ad esempio:

      {
          "productTitle": "{{product.title}}",
          "productStatus": "{{product.status}}"
      }
  3. 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 body restituito dall’oggetto sendHTTPrequest, 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.parse e 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
        }
      }
  4. 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}}
  5. Attiva il flusso di lavoro.

  6. Testalo modificando lo stato di un prodotto, ad esempio da Bozza a Attivo.

  7. 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