情境中的變數與資料
一個情境有三種讓資料流動的機制。它們互為補充,而知道該挑哪一種,可以省下大量 沒必要的接線。
1. 連結上的權杖
Section titled “1. 連結上的權杖”這是主要的機制:一個方塊產出一個值,這個值在連結上前進,可能被 選擇器重新塑形,然後抵達下一個方塊的 輸入。
它既明確又好讀:資料流就是畫面上的那張圖。
凡是屬於局部的東西都用它 — 例如某個呼叫的結果被下一個呼叫消費。
2. 執行變數
Section titled “2. 執行變數”一個具名的空間,專屬於這一次執行:
- 設定變數會寫入一個值;
- 取得變數會把它讀回來;
- 型別為
variable的值會在任何欄位中即時讀取它; {{name}}會在樣板中讀取它(Transform template、Map);vars物件會在程式碼動作中讀取它;- 新增至清單與從清單移除可以直接寫回來源變數。
執行變數在執行期間會蓋掉環境:一個使用 {{token}} 的請求,拿到的會是情境
放上去的權杖,而不是環境裡的那一個。
凡是對整次執行都是全域的東西就用它:一個權杖、一個關聯識別碼、一個計數器 — 而不是拉一條連結橫穿整張圖。
3. 參數與輸出
Section titled “3. 參數與輸出”-
Input / Param 方塊宣告一個或多個具名參數,每個都有自己的型別。它只發出 一個物件
{ name: value, … }。這些值的來源依序是:啟動時(介面或 MCP)、命令列(
--param name=value), 或在情境走到這個方塊卻沒有可用值時發出的互動詢問。 -
Output / Return 方塊會對呼叫方公開一個具名的結果。被執行情境動作呼叫 的情境,會把它的輸出呈現在呼叫方的
output:<name>連接埠上。
這正是能夠組合的原因:一個「登入」情境負責回傳權杖,其他情境重複使用它。
請求動作有一個 env 連接埠:把一個環境接上去(型別為 environment 的值,或是
一個環境名稱),就會在那個環境中執行該呼叫。
這就是讓同一個情境先對 staging 再對 production 執行、而完全不必複製任何東西
的辦法 — 請把環境當成情境的參數傳進來。
headless 模式下的解析
Section titled “headless 模式下的解析”所有具型別的值在介面中與無視窗執行時的解析方式完全相同:自訂清單、列舉、 環境預覽都一樣。在介面裡能跑的情境,在 CI 裡也能跑。
有歧義的環境名稱(兩個同名環境)會產生一個明確的錯誤:這時請改傳識別碼。
命令列參數的型別轉換
Section titled “命令列參數的型別轉換”--param 收到的是文字;Restorm 會依參數宣告的型別轉換它:
| 宣告的型別 | 您要傳的東西 |
|---|---|
| 數值 | --param Seuil=42 |
| Boolean | --param Actif=true(也接受 1、yes、on) |
| Date math | 一個日期,或一個 epoch 時間戳 |
| 清單 | 一段 JSON:--param Ids='[1,2,3]' |
| 列舉 | 該值,並會對照允許的集合進行驗證 |
| 自訂清單 | 標籤,會被轉換成值(Rouge → FF0000) |
| 環境 | 一個環境名稱或識別碼 |
| 其餘型別 | 原始字串 |
無法完成的轉換會讓啟動失敗並給出清楚的訊息,而不是帶著一個錯誤的值繼續 執行。