HTTP-Anfrage senden
Die Aktion HTTP-Anfrage senden verbindet deinen Workflow mit einem Webserver oder einer URL und sendet HTTP-Anfragen.
Nachdem Flow deine HTTP-Anfrage gesendet hat, wartet das Tool maximal 30 Sekunden auf einen HTTP-Antwortcode. Wenn Flow nach 30 Sekunden keine Antwort von deiner App erhalten hat, wird die Verbindung zu deiner App abgebrochen. Später wird die Anfrage erneut gesendet.
Felder
Die Aktion HTTP-Anfrage senden enthält die folgenden Felder.
Feld | Beschreibung |
---|---|
HTTP-Methode | Die Methode zum Senden der HTTP-Anfrage. Die Aktion HTTP-Anfrage senden unterstützt die folgenden Methoden:
|
URL | Die URL des Servers, an den die HTTP-Anfrage gesendet wird. |
Header | Das Schlüssel-Wert-Paar für die HTTP-Anfrage. Es können mehrere Schlüssel-Wert-Paare eingegeben werden. |
Nachricht | Der Inhalt, der an den Server gesendet werden soll. |
Bei Clientfehler (4XX-Antwort) | Beim Eingang eines Antwortcodes, der auf einen Client-Flowehler hindeutet, werden in Flow folgende Vorgänge ausgeführt:
|
Bei Serverfehler (Antwort 5XX oder 429) | Beim Eingang eines Antwortcodes, der auf einen Serverfehler hindeutet, werden in Flow folgende Vorgänge ausgeführt:
|
Zurückgegebene Daten
Um in den Schritten, die auf diese Aktion folgen, auf die zurückgegebenen Daten zuzugreifen, verwende die Variable mit der Bezeichnung sendHttpRequest
, die alle Details der HTTP-Antwort enthält. Verwende optional die Aktion Code ausführen , um den body
der Antwort zur Verwendung in nachfolgenden Workflow-Schritten zu analysieren, wie im folgenden Beispiel dargestellt.
Wenn die Aktion HTTP-Anfrage senden mehrfach in einem einzelnen Workflow verwendet wird, wird dem Variablennamen eine Zahl hinzugefügt. In einem Workflow, der die Aktion HTTP-Anfrage senden zweimal verwendet, lautet die erste Variable für zurückgegebene Daten dann beispielsweise sendHttpRequest
und die zweite Variable sendHttpRequest1
. Dieser Name kann nicht angepasst werden.
Antwortcodes
In der folgenden Tabelle wird beschrieben, wie Flow den HTTP-Antwortcode verarbeitet, nachdem das Programm eine Antwort erhalten hat.
HTTP-Antwortcode | So verarbeitet Flow den Antwortcode |
---|---|
2XX oder 3XX – Erfolgreiche Operation | Flow markiert die HTTP-Anfrage als erfolgreiche Operation und führt alle nachfolgenden Aktionen im Workflow aus. |
4XX-Fehler, 5XX- und 429-Fehler | Abhängig von der Konfiguration der Aktion führt Flow Folgendes aus:
| Anderer Antwortcode | Wenn die Antwort einen Code zurückgibt, der in dieser Tabelle nicht beschrieben ist, oder wenn beim erneuten Versuch von Aktionen eine Zeitüberschreitung auftritt, markiert Flow die HTTP-Anforderung als fehlgeschlagen, lässt die Ausführung des Workflows fehlschlagen und führt keine nachfolgenden Workflow-Aktionen aus. |
Geheime Schlüssel
Geheimnisse werden verwendet, um vertrauliche Informationen wie Zugriffstoken oder Passwörter für die Verwendung in der Aktion HTTP-Anforderung senden sicher zu speichern. Geheimnisse werden auf der Seite Flow > Einstellungen erstellt und verwaltet. Ein Geheimnis enthält einen Handle, einen Wert und eine Beschreibung. Verweise beim Konfigurieren der Felder „URL“, „Header-Wert“ oder „Body“ auf das Geheimnis als Liquid-Variable (z. B. {{secrets.handle}}
) oder über die Option Geheimnis hinzufügen. Geheime Werte sind in der Flow-Schnittstelle nie sichtbar und werden aus den Workflow-Ausführungsprotokollen gelöscht/anonymisiert.
Trigger
Die Aktion HTTP-Anfrage senden kann in jedem Workflow verwendet werden.
Beispiele
Beispiel 1: Eine HTTP-Anfrage an einen externen Dienst senden
In diesem Beispiel wird Flow verwendet, um eine HTTP-Anfrage an einen externen Dienst zu senden.
Bevor du beginnst, musst du einen Webdienst konfigurieren, der HTTP-Anfragen empfängt und die Daten dieser Anfragen zu Testzwecken speichert, beispielsweise Request Catcher. Du solltest beim Senden sensibler Daten (z. B. Passwörter oder API-Schlüssel) an einen Drittanbieterdienst mit Bedacht vorgehen.
Schritte:
Wähle den Trigger Produktstatus aktualisiert aus, mit dem du diesen Workflow testen kannst, indem du den Status eines Produkts änderst.
Füge die Aktion HTTP-Anfrage senden zu deinem Workflow hinzu und verbinde sie mit dem Trigger. Öffne anschließend das Konfigurationsfenster, indem du auf den Schritt HTTP-Anfrage senden klickst.
- Gib im Feld HTTP-Methode
POST
ein. - Gib im URL-Feld die zu testende URL ein, z. B.
https://yourFlowTest.requestcatcher.com/test
. - Gib im Abschnitt Header eine Kopfzeile mit dem Schlüssel
Content-Type
und dem Werttext/plain
ein. - Gib im Abschnitt Body
{{product.title}}
und{{product.status}}
ein, um den Titel und den aktualisierten Status des Produkts vom Trigger zu senden.
- Gib im Feld HTTP-Methode
Aktiviere den Workflow.
Teste es, indem du den Status eines Produkts von Entwurf in Aktiv änderst oder umgekehrt.
Beobachte die Ergebnisse im externen Testdienst, wie z. B.
https://yourFlowTest.requestcatcher.com/
in diesem Beispiel.
Beispiel 2: Code ausführen verwenden, um eine HTTP-Antwort zu analysieren
Verwenden Flow in diesem Beispiel, um eine HTTP-Anfrage an einen externen Dienst zu senden, und die Aktion Code ausführen, um den body
der HTTP-Antwort zur Verwendung in nachfolgenden Workflow-Schritten zu analysieren.
Bevor du beginnst, musst du einen Webdienst auswählen, der HTTP-Anfragen empfängt und die Daten zurückgibt, wie etwa Postman Echo. Du solltest beim Senden sensibler Daten (z. B. Passwörter oder API-Schlüssel) an einen Drittanbieterdienst mit Bedacht vorgehen.
Schritte:
- Wähle den Trigger Produktstatus aktualisiert aus, mit dem du diesen Workflow testen kannst, indem du den Status eines Produkts änderst.
- Füge die Aktion HTTP-Anfrage senden zu deinem Workflow hinzu und verbinde sie mit dem Trigger. Öffne anschließend das Konfigurationsfenster, indem du auf den Schritt HTTP-Anfrage senden klickst.
- Gib im Feld HTTP-Methode
POST
ein. - Gib im URL-Feld die zu testende URL ein, z. B.
https://postman-echo.com/post
. - Gib im Abschnitt Header eine Kopfzeile mit dem Schlüssel
Content-Type
und dem Wertapplication/json
ein. - Gib im Abschnitt Body den JSON-Beispielcode ein, um zum Workflow zurückzukehren, etwa: ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
- Gib im Feld HTTP-Methode
3. Füge deinem Workflow die Aktion **Code ausführen** hinzu und verbinde sie mit der Aktion **HTTP-Anfrage senden**. Öffne dann das Konfigurationsfenster, indem du auf den Schritt **Code ausführen** klickst.
- Gib im Feld **Eingaben definieren** den vom Objekt `sendHTTPrequest` zurückgegebenen `body` ein, beispielsweise ```
query{
sendHttpRequest {
body
}
}
- Definiere im Feld **Ausgaben definieren** das Ausgabeschema, beispielsweise ```
type Output { productTitle: String! productStatus: String! }
- Analysiere im Feld **Code schreiben** die Antwort mit der Methode `JSON.parse` und stelle sicher, dass die zurückgegebenen Daten mit den im Ausgabeschema definierten Shapes und Typen übereinstimmen, wie zum Beispiel: ```
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
}
}
- Füge die Aktion Protokollausgabe zum Workflow hinzu und stelle eine Verbindung mit der Aktion Code ausführen her. Öffne anschließend das Konfigurationsfenster, indem du auf den Schritt Code ausführen klickst.
- Füge im Feld Ausgabe die vom Schritt Code ausführen zurückgegebenen Variablen ein, beispielsweise: ``` Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
5. Aktiviere den Workflow.
6. Teste es, indem du den Status eines Produkts von **Entwurf** in **Aktiv** änderst oder umgekehrt.
7. Beobachte die resultierende Ausführung auf der Seite **[„Flow/Aktuelle Ausführungen“](https://admin.shopify.com/apps/flow/activity)** und beachte, dass die Werte im Schritt **Protokollausgabe** mit den Werten übereinstimmen, die von der Ausgabe **HTTP-Anforderung senden** zurückgegeben wurden.
## Vorlagen {#templates}
### Fulfillmentanbieter über anstehende Bestellungen benachrichtigen
Sende eine HTTP-Anfrage an deinen Fulfillmentanbieter, wenn Bestellungen in Order Tagger mit "Lager" getaggt sind. [Vorlage anzeigen](https://shopify.com/admin/apps/flow/editor/templates/e99f15ae-454b-443b-b6c7-7dc4b2afc129)
### Neue Bestellungen an Airtable senden
Sende Bestellungen an Airtable, wenn eine Bestellung erstellt wird. [Vorlage anzeigen](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7)
### Alle vorhandenen und neuen Produkte an Airtable senden
Suche alle 10 Minuten nach Produkten, die nicht an Airtable gesendet wurden (per Tag) und sende sie an Airtable. [Vorlage anzeigen](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82)
### Aktualisiere Produkte in Batches basierend auf Produktdaten, die in Airtable gespeichert sind.
Aktualisiere Produkte in Batches basierend auf Produktdaten, die in Airtable gespeichert sind. [Vorlage anzeigen](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b)
### Benachrichtige Kund:innen über ablaufende Geschenkgutscheine mit SendGrid
Rufe jeden Tag alle Geschenkkarten ab, die in 7 Tagen ablaufen, und sende E-Mails an die Kund:innen über SendGrid. [Vorlage anzeigen](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e)
### E-Mails mit SendGrid senden, wenn Kund:innen eine Bestellung für einen benutzerdefinierten Artikel aufgeben
Sende eine Transaktions-E-Mails mit SendGrid, wenn ein Kunde oder eine Kundin eine Bestellung für einen benutzerdefinierten Artikel aufgibt. [Vorlage anzeigen](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb)