Zum Inhalt springen

Einführung in Szenarien

Ein Szenario ist ein Graph. Bausteine (die Aktionen) sind durch Verbindungen verknüpft, die Werte und Signale transportieren. Die Engine führt einen Baustein aus, sobald alle seine verdrahteten Eingänge etwas empfangen haben.

Das ist es, was in Restorm die Pre-Request- und Post-Request-Skripte anderer API-Clients ersetzt — mit einem entscheidenden Vorteil: Man sieht den Ablauf.

Rechtsklick im Baum ▸ Hinzufügen ▸ Szenario.

Ein vollständiges Szenario im Editor: ein Input/Param-Knoten, eine HTTP-Anfrage, eine Assertion auf den Statuscode, eine Handlebars-Extraktion, eine If-Bedingung und ein Log

  • Verketten: Aufrufe aneinanderreihen und einen Wert von einem zum anderen weiterreichen: eine Ressource anlegen, ihre ID abrufen, sie im nächsten Aufruf verwenden.
  • Prüfen: Assertions, JSON-Schemavalidierung, Vergleich.
  • Verzweigen und wiederholen: if, switch, for, forEach, while, retry.
  • Mehrere Transportarten orchestrieren: ein MQTT-Abonnement öffnen, eine Aktion per HTTP auslösen, prüfen, dass die Nachricht ankommt.
  • Automatisieren: Dasselbe Szenario läuft in der Oberfläche und ohne Fenster in Continuous Integration.
BegriffWas es ist
Baustein (Knoten)Eine Aktion. Neunzig Typen stehen zur Verfügung — siehe den Katalog
PortEin Anschlusspunkt an einem Baustein, typisiert und gerichtet
Verbindung (Kante)Ein Draht zwischen einem Ausgangs- und einem Eingangsport
SelektorEin Pfad, angewendet auf den Wert im Durchlauf auf einer Verbindung (data.items[0].id)
Run-VariableEin benannter Wert, während der Ausführung gesetzt und wieder gelesen
ParameterEin Eingang des Szenarios, beim Start oder in der Kommandozeile geliefert
AusgangEin dem Aufrufer des Szenarios bereitgestelltes Ergebnis

Die drei Ports, die jeder Baustein besitzt

Section titled “Die drei Ports, die jeder Baustein besitzt”

Sie sind nicht in der Konfiguration aufgeführt: Sie gehören zum Rahmen des Bausteins.

PortRichtungRolle
inEingangDer Auslöser. Er akzeptiert mehrere eingehende Verbindungen und wartet dann, bis alle eingetroffen sind — das ist die Barriere „warten, bis mehrere Zweige abgeschlossen sind“
errorAusgangDie Fehlerroute. Alles, was fehlschlägt, geht hier hindurch
doneAusgangWird ausgelöst, wenn der Baustein und sein gesamter nachgelagerter Teilgraph fertig sind

Die Unterscheidung zwischen done und dem Wert-Ausgang ist wichtig: Ein Wert wird ausgegeben, sobald er erzeugt ist, während done wartet, bis alles, was davon abhängt, abgeschlossen ist.

  1. Fügen Sie eine Aktion HTTP-Anfrage hinzu und verknüpfen Sie sie mit einer bestehenden Anfrage.
  2. Fügen Sie eine Aktion Assert hinzu, Operator eq.
  3. Ziehen Sie eine Verbindung vom Port response der Anfrage zum Eingang a der Assertion, und setzen Sie den Selektor status auf diese Verbindung.
  4. Setzen Sie in der Assertion b auf 200.
  5. Klicken Sie auf Play.

Die Assertion hat zwei Ausgänge, then und else: Verbinden Sie ein Log oder ein Toast mit jedem, um das Ergebnis zu sehen.