Hoppa till innehåll

Variabler och miljöer

Variablerna i Restorm bor i en variabelmapp, som kan innehålla flera uppsättningar: en per miljö.

En miljö är en lista av nyckel/värde-par. Den kan innehålla undermiljöer, som ärver från sin förälder och skriver över det de omdefinierar.

Det är rätt verktyg för att modellera stagingstaging / customer A, staging / customer B: den gemensamma basen skrivs en gång, bara skillnaden upprepas.

Miljöträdet: föräldramiljön ”Petstore” och dess två undermiljöer ”Staging” och ”Production”

Miljöväljaren ligger till vänster i smartbaren i varje begäranflik. Den visar en färgad markering och miljöns namn.

Popover-fönstret erbjuder en kryssruta ”Använd på alla begäranden”: när den är ikryssad växlar hela mappen på en gång — det är vad du vill ha när ett helt projekt ska gå från local till staging.

En variabel är inte bara en sträng. Restorm erbjuder följande typer:

TypVad det är
SträngEtt literalt värde, skickas som det är
UttryckEn Handlebars-mall — det är den enda typen där {{ }} utvärderas
NumeriskEtt tal, med ett visningsformat
BooleskSant / falskt
Datum-tidEtt ISO-datum, med ett format
FärgEn hexadecimal färg
HemlighetEn referens till en hemlighetskälla — värdet passerar aldrig genom projektfilen
ListaEn lista av värden
Uppräkning / FlervalsuppräkningEtt värde som begränsas av en importerad uppräkning
Anpassad lista / Anpassad flervalslistaEtt val per etikett i en anpassad värdelista
VariabelEn referens till en annan variabel
MiljöEn referens till en miljö
NullDet uttryckliga nullvärdet

Från det mest allmänna till det mest specifika — den sista vinner:

  1. rotmiljön, sedan varje undermiljö i kedjan;
  2. miljöns egna variabler, i den ordning de deklarerats: en variabel kan alltså bygga på dem som definierats ovanför den;
  3. de körningsvariabler som ett scenario sätter (åtgärden Ange variabel), som täcker miljön så länge körningen varar;
  4. begärans egna värden (headers, frågeparametrar, sökvägsparametrar), där varje grupp löses upp mot den ackumulerade kontexten;
  5. och till sist de {{ }} som skrivits direkt i begärans fält — se Inline-variabler.

Restorm gör dessutom flera pass: ett uttryck i en föräldramiljö kan därför hämta ett värde som omdefinierats av ett barn.

Varje variabel har en aktiveringsruta. En avaktiverad variabel kommer inte in i kontexten — det är det snygga sättet att tillfälligt neutralisera en överskrivning utan att ta bort den.

Vid import avaktiveras automatiskt de nyckel/värde-par vars värde löses upp till tomt: din första körning skickar därför inte en svärm av tomma headers.

Varje uttryck är en Handlebars-mall, med över hundra tillgängliga helpers: strängar, matematik, datum, listor, kodning, hashning, slumpdata.