Przejdź do głównej zawartości

Wprowadzenie do scenariuszy

Scenariusz jest grafem. Bloki (akcje) są połączone krawędziami, które przenoszą wartości i sygnały. Silnik wykonuje blok, gdy tylko wszystkie jego podłączone wejścia coś otrzymają.

To właśnie zastępuje w aplikacji Restorm skrypty pre-request i post-request znane z innych klientów API — z jedną decydującą zaletą: przepływ jest widoczny.

Kliknięcie prawym przyciskiem w drzewie ▸ Dodaj ▸ Scenariusz.

Kompletny scenariusz w edytorze: węzeł Input/Param, żądanie HTTP, asercja na kodzie statusu, ekstrakcja Handlebars, warunek If oraz Log

  • Łączenie wywołań w łańcuch i przekazywanie wartości z jednego do drugiego: utworzenie zasobu, pobranie jego identyfikatora, użycie go w kolejnym wywołaniu.
  • Weryfikowanie: asercje, walidacja schematu JSON, porównania.
  • Rozgałęzianie i pętle: if, switch, for, forEach, while, retry.
  • Orkiestracja wielu transportów: otwarcie subskrypcji MQTT, wywołanie akcji przez HTTP, sprawdzenie, że komunikat dociera.
  • Automatyzacja: ten sam scenariusz działa w interfejsie oraz bez okna w ciągłej integracji.
PojęcieCzym jest
Blok (węzeł)Akcja. Dostępnych jest dziewięćdziesiąt typów — zob. katalog
PortPunkt podłączenia na bloku, typowany i skierowany
Połączenie (krawędź)Przewód między portem wyjściowym a portem wejściowym
SelektorŚcieżka stosowana do wartości przesyłanej przez połączenie (data.items[0].id)
Zmienna uruchomieniaNazwana wartość, ustawiana i odczytywana w trakcie wykonania
ParametrWejście scenariusza, dostarczane przy uruchomieniu albo w wierszu poleceń
WyjścieWynik udostępniany wywołującemu scenariusz

Nie są wymienione w konfiguracji: stanowią część ramy bloku.

PortKierunekRola
inWejścieWyzwalacz. Przyjmuje wiele połączeń wchodzących i czeka wówczas, aż dotrą wszystkie — to bariera „poczekaj na zakończenie kilku gałęzi”
errorWyjścieTrasa błędu. Wszystko, co się nie udaje, wychodzi tą drogą
doneWyjścieEmitowany, gdy blok oraz cały jego podgraf w dół zakończą pracę

Rozróżnienie między done a wyjściem wartości jest istotne: wartość wychodzi, gdy tylko zostanie wytworzona, natomiast done czeka na zakończenie wszystkiego, co od niej zależy.

  1. Dodać akcję Żądanie HTTP i powiązać ją z istniejącym żądaniem.
  2. Dodać akcję Assert z operatorem eq.
  3. Przeciągnąć połączenie z portu response żądania do wejścia a asercji i ustawić na tym połączeniu selektor status.
  4. W asercji ustawić b na 200.
  5. Kliknąć Uruchom.

Asercja ma dwa wyjścia, then i else: podłączenie do każdego z nich bloku Log lub Toast pozwala obserwować przechodzący wynik.