HTTP-aanvraag verzenden
De actie HTTP-aanvraag verzenden verbindt je workflow met een webserver of URL en verzendt HTTP-aanvragen.
Nadat Flow je HTTP-aanvraag heeft verzonden, wordt er maximaal 30 seconden gewacht op een HTTP-responscode. Als Flow na 30 seconden nog geen reactie heeft gekregen, wordt de verbinding met je app gesloten. Flow probeert de aanvraag later opnieuw.
Velden
De actie HTTP-aanvraag verzenden bevat de volgende velden.
Veld | Beschrijving |
---|---|
HTTP-methode | De methode van HTTP-verzoek om te verzenden. De actie HTTP-verzoek verzenden ondersteunt de volgende methoden:
|
URL | De URL van de server waarnaar de HTTP-aanvraag wordt verzonden. |
Kopteksten | Het sleutel- en waardepaar voor de HTTP-aanvraag. Er kunnen meerdere sleutel- en waardeparen worden ingevoerd. |
Hoofdtekst | De content die naar de server moet worden verzonden. |
Bij een clientfout (4XX-reactie) | Wanneer Flow een responscode ontvangt die duidt op een clientfout, zal Flow:
|
Bij serverfout (5XX of 429 respons) | Wanneer Flow een responscode ontvangt die duidt op een serverfout, zal Flow:
|
Geretourneerde gegevens
Om toegang te krijgen tot de geretourneerde gegevens in stappen die op deze actie volgen, gebruik je de variabele sendHttpRequest
, die alle details van het HTTP-antwoord bevat. Gebruik desgewenst een Run code actie om de body
van het antwoord te parseren voor gebruik in volgende workflowstappen, zoals in het onderstaande voorbeeld.
Als de actie HTTP-verzoek verzenden meerdere keren in één workflow wordt gebruikt, wordt er een cijfer toegevoegd aan de variabele naam. Bijvoorbeeld, in een workflow die de actie HTTP-aanvraag verzenden twee keer gebruikt, is de eerste variabele voor geretourneerde gegevens sendHttpRequest
en de tweede variabele sendHttpRequest1
. Je kunt deze naam niet aanpassen.
Responscodes
De volgende tabel geeft weer hoe Flow de HTTP-antwoordcode verwerkt zodra het een antwoord ontvangt.
HTTP-antwoordcode | Hoe Flow de antwoordcode verwerkt |
---|---|
2XX of 3XX Geslaagd | Flow markeert de HTTP-aanvraag als geslaagd en voert verdere acties uit in de workflow. |
4XX fouten, 5XX en 429 fouten | Afhankelijk van hoe de actie is geconfigureerd, zal Flow:
| Andere antwoordcode | Als het antwoord een code retourneert die niet in deze tabel wordt beschreven of als het antwoord een time-out krijgt bij het opnieuw proberen van acties, dan markeert Flow het HTTP-verzoek als mislukt, mislukt de workflowrun en worden er geen vervolgacties op de workflow uitgevoerd. |
Geheimen
Geheimen worden gebruikt om gevoelige informatie veilig op te slaan voor gebruik in de HTTP aanvraag verzenden actie, zoals toegangstokens of wachtwoorden. Geheimen worden aangemaakt en beheerd via de pagina Flow > Instellingen. Een geheim bevat een handle, waarde en beschrijving. Verwijs naar het geheim als een Liquid variabele (zoals {{secrets.handle}}
) of vanuit de optie Geheim toevoegen bij het configureren van de velden URL, Koptekstwaarde of Hoofdtekst. Geheime waarden zijn nooit zichtbaar in de Flow interface en worden uit de workflow logs gewist.
Triggers
De actie HTTP-aanvraag verzenden kan in elke workflow worden gebruikt.
Voorbeelden
Voorbeeld 1: Een HTTP-verzoek verzenden naar een externe service
In dit geval gebruik je Flow om een HTTP-aanvraag naar een externe service te verzenden.
Stel voordat je begint een webservice in waarmee je HTTP-aanvragen ontvangt en de gegevens van die testaanvragen bewaart, zoals Request Catcher. Vergeet niet voorzichtig te zijn bij het verzenden van gevoelige gegevens (zoals wachtwoorden of API-sleutels) naar diensten van externe partijen.
Stappen:
Kies de trigger Productstatus bijgewerkt, waarmee je deze workflow kunt testen door de status van een product te wijzigen.
Voeg een HTTP-aanvraag verzenden actie toe aan je workflow en koppel deze aan de trigger. Open vervolgens het configuratiescherm door op de stap HTTP-aanvraag verzenden te klikken.
- Voer in het veld HTTP-methode
POST
in. - Voer in het veld URL de URL in die je wil testen, zoals
https://yourFlowTest.requestcatcher.com/test
. - Voer in de sectie Kopteksten een tweede koptekst in met de Sleutel voor
Content-Type
en een Waarde voortext/plain
. - In het gedeelte Hoofdtekst voer
{{product.title}}
en{{product.status}}
in om de titel en bijgewerkte status van de product formuliertrigger te verzenden
- Voer in het veld HTTP-methode
Activeer de workflow.
Test het door de status van een product te wijzigen, bijvoorbeeld van Concept naar Actief.
Bekijk de resultaten in de externe testservice, zoals
https://yourFlowTest.requestcatcher.com/
in dit voorbeeld.
Voorbeeld 2: Gebruik Code uitvoeren om een HTTP-antwoord te parsen
In dit voorbeeld gebruik je Flow om een HTTP-verzoek naar een externe service te sturen en een Run code actie om de body
van het HTTP-antwoord te parsen voor gebruik in volgende workflowstappen.
Kies voordat je begint een webservice die HTTP-verzoeken ontvangt en gegevens terugstuurt, zoals Postman Echo. Vergeet niet voorzichtig te zijn bij het verzenden van gevoelige gegevens (zoals wachtwoorden of API-sleutels) naar diensten van externe partijen.
Stappen:
- Kies de trigger Productstatus bijgewerkt, waarmee je deze workflow kunt testen door de status van een product te wijzigen.
- Voeg een HTTP-aanvraag verzenden actie toe aan je workflow en koppel deze aan de trigger. Open vervolgens het configuratiescherm door op de stap HTTP-aanvraag verzenden te klikken.
- Voer in het veld HTTP-methode
POST
in. - Voer in het veld URL de URL in die je wil testen, zoals
https://postman-echo.com/post
. - Voer in de sectie Kopteksten een tweede koptekst in met de Sleutel voor
Content-Type
en een Waarde voorapplication/json
. - Voer in het gedeelte Hoofdtekst het voorbeeld JSON in om terug te sturen naar de workflow, zoals: ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
- Voer in het veld HTTP-methode
3. Voeg een **Code uitvoeren** actie toe aan je workflow en koppel deze aan de **HTTP-aanvraag verzenden** actie. Open vervolgens het configuratiescherm door op de stap **Code uitvoeren** te klikken.
- Neem in het veld **Invoer definiëren** de `body` op die het `sendHTTPrequest` object retourneert, zoals: ```
query{
sendHttpRequest {
body
}
}
- In het veld **Uitvoer definiëren**, gedefinieerd in het uitvoerschema, zoals: ```
type Output { productTitle: String! productStatus: String! }
- In het veld **Code schrijven** parseer je het antwoord met behulp van de `JSON.parse` methode en zorg je ervoor dat de gegevens die je retourneert overeenkomen met de vorm en types die zijn gedefinieerd in het uitvoerschema, zoals: ```
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
}
}
- Voeg een Log uitvoer actie toe aan je workflow en koppel deze aan de Code uitvoeren actie. Open vervolgens het configuratiescherm door op de stap Code uitvoeren te klikken.
- Neem in het veld Uitvoer de variabelen op die zijn geretourneerd door de stap Code uitvoeren, zoals: ``` Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
5. Activeer de workflow.
6. Test het door de status van een product te wijzigen, bijvoorbeeld van **Concept** naar **Actief**.
7. Bekijk de resulterende run op de **[Flow / Recent runs](https://admin.shopify.com/apps/flow/activity)** pagina en merk op dat de waarden in de **Log uitvoer**stap overeenkomen met de waarden die terugkomen van de uitvoer **HTTP-aanvraag verzenden**.
## Templates {#templates}
### Breng je fulfilmentdienst op de hoogte van aankomende bestellingen
Stuur een HTTP-aanvraag naar je fulfilmentdienst wanneer bestellingen worden getagd als 'Warehouse' in Order Tagger. [Template bekijken](https://shopify.com/admin/apps/flow/editor/templates/e99f15ae-454b-443b-b6c7-7dc4b2afc129)
### Nieuwe bestellingen naar Airtable verzenden
Bestellingen naar Airtable verzenden wanneer een bestelling is aangemaakt. [Template bekijken](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7)
### Alle bestaande en nieuwe producten naar Airtable verzenden
Elke tien minuten zoeken naar producten die nog niet naar Airtable zijn verzonden (per tag) en deze vervolgens naar Airtable verzenden. [Template bekijken](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82)
### Producten in batch updaten op basis van in Airtable opgeslagen productgegevens
Producten in batch bijwerken op basis van productgegevens die zijn opgeslagen in Airtable. [Template bekijken](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b)
### Klanten via SendGrid informeren over cadeaubonnen die op het punt staan te verlopen
Elke dag alle cadeaubonnen ontvangen die over zeven dagen verlopen en hierover e-mails naar klanten verzenden via SendGrid. [Template bekijken](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e)
### Een e-mail verzenden met SendGrid wanneer klanten een bestelling plaatsen voor een aangepast artikel
Verzend een transactie-e-mail met SendGrid wanneer een klant een bestelling plaatst voor een aangepast artikel. [Template bekijken](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb)