Sari la conținut

Introducere în scenarii

Un scenariu este un graf. Cutii (acțiunile) sunt legate prin legături care transportă valori și semnale. Motorul execută o cutie de îndată ce toate intrările sale cablate au primit ceva.

Este ceea ce, în Restorm, înlocuiește scripturile pre-cerere și post-cerere din ceilalți clienți de API — cu un avantaj decisiv: fluxul se vede.

Clic dreapta în arbore ▸ Adaugă ▸ Scenariu.

Un scenariu complet în editor: un nod Input/Param, o cerere HTTP, o aserțiune pe codul de stare, o extragere Handlebars, o condiție If și un Log

  • Înlănțuirea apelurilor și transmiterea unei valori de la unul la altul: crearea unei resurse, recuperarea identificatorului ei, utilizarea acestuia în apelul următor.
  • Verificarea: aserțiuni, validarea unei scheme JSON, comparație.
  • Ramificarea și buclele: if, switch, for, forEach, while, retry.
  • Orchestrarea mai multor transporturi: deschiderea unui abonament MQTT, declanșarea unei acțiuni prin HTTP, verificarea sosirii mesajului.
  • Automatizarea: același scenariu rulează în interfață și fără fereastră, în integrare continuă.
NoțiuneCe este
Cutie (nod)O acțiune. Sunt disponibile nouăzeci de tipuri — vedeți catalogul
PortUn punct de conectare pe o cutie, tipizat și orientat
Legătură (muchie)Un fir între un port de ieșire și un port de intrare
SelectorO cale aplicată valorii aflate în tranzit pe o legătură (data.items[0].id)
Variabilă de rulareO valoare denumită, pusă și recitită în timpul execuției
ParametruO intrare a scenariului, furnizată la lansare sau în linia de comandă
IeșireUn rezultat expus apelantului scenariului

Cele trei porturi pe care le are orice cutie

Section titled “Cele trei porturi pe care le are orice cutie”

Ele nu sunt listate în configurație: fac parte din cadrul cutiei.

PortSensRol
inIntrareDeclanșatorul. Acceptă mai multe legături sosite și așteaptă atunci ca toate să fi ajuns — este bariera „așteaptă ca mai multe ramuri să se termine”
errorIeșireRuta de eșec. Tot ce eșuează pleacă pe acolo
doneIeșireEmis când cutia și tot subgraful său din aval au terminat

Distincția done / ieșire de valoare este importantă: o valoare iese de îndată ce este produsă, în timp ce done așteaptă ca tot ce depinde de ea să se fi terminat.

  1. Adăugați o acțiune Cerere HTTP și legați-o de o cerere existentă.
  2. Adăugați o acțiune Assert, operatorul eq.
  3. Trageți o legătură de la portul response al cererii spre intrarea a a aserțiunii și puneți selectorul status pe această legătură.
  4. În aserțiune, setați b la 200.
  5. Faceți clic pe Redare.

Aserțiunea are două ieșiri, then și else: conectați un Log sau un Toast pe fiecare, pentru a vedea rezultatul trecând.