Hoppa till innehåll

Introduktion till scenarier

Ett scenario är en graf. Rutor (åtgärderna) binds samman av kopplingar som bär värden och signaler. Motorn kör en ruta så snart alla dess inkopplade ingångar har tagit emot något.

Det är det som i Restorm ersätter andra API-klienters skript före och efter begäran — med en avgörande fördel: du ser flödet.

Högerklicka i trädet ▸ Lägg till ▸ Scenario.

Ett komplett scenario i editorn: en Input/Param-nod, en HTTP-begäran, en assertion på statuskoden, en Handlebars-extrahering, ett If-villkor och en Log

  • Kedja anrop och skicka ett värde från det ena till det andra: skapa en resurs, hämta dess identifierare, använd den i nästa anrop.
  • Kontrollera: assertions, validering mot ett JSON-schema, jämförelse.
  • Förgrena och loopa: if, switch, for, forEach, while, retry.
  • Orkestrera flera transporter: öppna en MQTT-prenumeration, utlös en åtgärd via HTTP, kontrollera att meddelandet kommer fram.
  • Automatisera: samma scenario körs i gränssnittet och utan fönster i kontinuerlig integration.
BegreppVad det är
Ruta (nod)En åtgärd. Nittio typer finns tillgängliga — se katalogen
PortEn kopplingspunkt på en ruta, typad och riktad
Koppling (kant)En tråd mellan en utgångsport och en ingångsport
VäljareEn sökväg som tillämpas på värdet under transport i en koppling (data.items[0].id)
KörningsvariabelEtt namngivet värde som sätts och läses under körningen
ParameterEn ingång till scenariot, som fylls i vid start eller på kommandoraden
UtgångEtt resultat som exponeras för scenariots anropare

De listas inte i konfigurationen: de är en del av rutans ram.

PortRiktningRoll
inIngångUtlösaren. Den accepterar flera inkommande kopplingar och väntar då tills alla har kommit fram — det är barriären ”vänta tills flera grenar är klara”
errorUtgångFelvägen. Allt som går fel går ut den vägen
doneUtgångSkickas när rutan och hela dess nedströms delgraf är klara

Skillnaden mellan done och en värdeutgång är viktig: ett värde går ut så snart det producerats, medan done väntar tills allt som beror på det är klart.

  1. Lägg till en åtgärd HTTP-begäran och koppla den till en befintlig begäran.
  2. Lägg till en åtgärd Assert, med operatorn eq.
  3. Dra en koppling från begärans port response till assertionens ingång a, och lägg väljaren status på den kopplingen.
  4. Sätt b till 200 i assertionen.
  5. Klicka på Kör.

Assertionen har två utgångar, then och else: koppla en Log eller en Toast på var och en för att se resultatet passera.