设置变量
适用于:所有 API 管理层级
set-variable
策略声明set-variable
变量,并为其分配通过表达式或字符串文本指定的值。 如果表达式包含文本,则会将其转换为字符串,值的类型将为 System.String
。
注意
按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略。
策略语句
<set-variable name="variable name" value="Expression | String literal" />
属性
属性 | 说明 | 必需 |
---|---|---|
name | 变量的名称。 不允许使用策略表达式。 | 是 |
value | 变量的值, 可以是表达式或文本值。 允许使用策略表达式。 | 是 |
使用情况
允许的类型
在 set-variable
策略中使用的表达式必须返回以下基本类型之一。
- System.Boolean
- System.SByte
- System.Byte
- System.UInt16
- System.UInt32
- System.UInt64
- System.Int16
- System.Int32
- System.Int64
- System.Decimal
- System.Single
- System.Double
- System.Guid
- System.String
- System.Char
- System.DateTime
- System.TimeSpan
- System.Byte?
- System.UInt16?
- System.UInt32?
- System.UInt64?
- System.Int16?
- System.Int32?
- System.Int64?
- System.Decimal?
- System.Single?
- System.Double?
- System.Guid?
- System.String?
- System.Char?
- System.DateTime?
示例
以下示例演示入站节中的 set-variable
策略。 此设置变量策略创建 isMobile
布尔 context 变量,该变量在 User-Agent
请求标头包含文本 iPad
或 iPhone
的情况下设置为 true。
<set-variable name="IsMobile" value="@(context.Request.Headers.GetValueOrDefault("User-Agent","").Contains("iPad") || context.Request.Headers.GetValueOrDefault("User-Agent","").Contains("iPhone"))" />
相关策略
后续步骤
有关使用策略的详细信息,请参阅:
- 教程:转换和保护 API
- 策略参考,其中提供了策略语句及其设置的完整列表
- 策略表达式
- 设置或编辑策略
- 策略示例