vars
設定一個或多個變數為特定值,以便稍後在請求處理鏈中使用。
存取變數的主要方式是使用佔位符,其形式為 {vars.variable_name}
,或使用 vars
和 vars_regexp
請求匹配器。
您可以將變數與 templates
指令搭配使用,並使用 placeholder
函數,例如:{{placeholder "http.vars.variable_name"}}
作為一個特例,可以覆寫名為 http.auth.user.id
的變數(該變數儲存在 replacer 中),以更新 存取日誌 中的 user_id
欄位。
語法
vars [<matcher>] [<name> <value>] {
<name> <value>
...
}
-
<name> 是要設定的變數名稱。
-
<value> 是變數的值。
如果可能,值將會進行類型轉換;
true
和false
將轉換為布林類型,數值將相應地轉換為整數或浮點數。為了避免這種轉換並將它們保留為字串,您可以使用 引號 將它們包裝起來。
範例
設定單個變數,其值基於請求路徑條件,然後以該值回應
example.com {
vars /foo* isFoo "yep"
vars isFoo "nope"
respond {vars.isFoo}
}
設定多個變數,每個變數都轉換為適當的純量類型
vars {
# boolean
abc true
# integer
def 1
# float
ghi 2.3
# string
jkl "example"
}