WAF3.0 API¶
GET 查询自定义限速规则¶
GET /prod-api/waf/wafv3/limit/rules/describeLimitRule/{limitRuleId}
根据 limitRuleId 获取单条自定义限速规则的完整配置(匹配条件 + 相同特征 + 限速动作),用于编辑页回显。规则 ID 来自 列出自定义限速控制规则。
保存修改请调用 编辑自定义限速规则;条件运算符、匹配对象见 查询条件参数。
请求参数¶
| 名称 | 位置 | 类型 | 必选 | 中文名 | 说明 |
|---|---|---|---|---|---|
| limitRuleId | path | integer(int64) | 是 | 规则 ID | 列表接口返回的 limitRuleId |
| Authorization | header | string | 是 | 鉴权 | Bearer Token |
返回示例
200 Response
{
"msg": "成功",
"code": 200,
"data": {
"limitRuleId": 15,
"wafId": null,
"ruleMessage": "11",
"sort": 1,
"status": "enable",
"rules": {
"characteristics": [
{
"target": "IP_SRC",
"name": "IP_SRC",
"parameter": {}
}
],
"conditions": [
{
"conditionId": 120000501,
"operator": "IP_IN_LIST",
"target": "IP_SRC",
"name": "IP_SRC",
"values": ["52"]
}
],
"action": {
"action": "DENY",
"limitAccess": 12,
"limitTime": 10,
"parameters": {
"behavior": "all",
"duration": 10
}
}
}
}
}
回显时
characteristics[].parameter可能带有 describeParameter 元数据,供前端渲染下拉;保存时只需传target、name(见 编辑自定义限速规则)。
本示例规则含义(与控制台页面对照)¶
| 控制台 / 配置项 | API 字段 | 含义 |
|---|---|---|
| 规则名称「11」 | ruleMessage |
规则描述 |
| 匹配:IP / 在数据集合中 / black | conditions[] |
IP_IN_LIST,values 为数据集合 ID(如 52) |
| 具有相同特征:IP | characteristics[] |
按源 IP 分别计数 |
| 请求 12、期间 10 秒 | limitAccess、limitTime |
10 秒内超过 12 次触发 |
| 操作:拦截 | action |
DENY |
| 在所选持续时间内阻止 / 10 秒 | behavior=all、duration=10 |
触发后 10 秒内拦截全部匹配请求 |
返回结果¶
| 状态码 | 状态码含义 | 说明 |
|---|---|---|
| 200 | OK | 成功 |
| 401 | Unauthorized | 未授权 |
| 403 | Forbidden | 无权限 |
返回数据结构¶
状态码 200
| 名称 | 类型 | 必选 | 中文名 | 说明 |
|---|---|---|---|---|
| » msg | string | 是 | 提示信息 | - |
| » code | integer | 是 | 状态码 | 200 表示成功 |
| » data | object | 是 | 规则详情 | 结构与 编辑自定义限速规则 请求体一致,可直接回显后修改再提交 |
data 顶层字段¶
| 字段 | 类型 | 说明 |
|---|---|---|
limitRuleId |
integer(int64) | 规则唯一 ID;编辑保存时必填 |
wafId |
integer 或 null | 策略组 ID。查询结果常为 null,保存时须在请求体传入正确的 wafId |
ruleMessage |
string | 规则描述/名称 |
sort |
integer | 同策略组内排序号 |
status |
string | enable / disable |
rules |
object | 规则逻辑:相同特征 + 条件 + 限速动作 |
data.rules 结构(与自定义规则的区别)¶
| 字段 | 说明 |
|---|---|
rules.characteristics |
相同特征(限速计数维度),见下节 |
rules.conditions |
匹配条件,为一维数组,见下节 |
rules.action |
限速动作(含阈值与行为),见下节 |
rules.characteristics[](相同特征)¶
对应控制台 「具有相同特征…」。至少 1 项、至多 10 项。
| 字段 | 类型 | 说明 |
|---|---|---|
target |
string | 特征编码,如 IP_SRC(界面显示「IP」) |
name |
string | 子字段名,通常与 target 相同 |
parameter |
object | 仅查询回显;前端用于渲染选项,提交 modifyLimitRule 时不必传 |
rules.conditions[](匹配条件)¶
一维数组:数组内所有条件为 与(AND) 关系,须全部满足才进入本条限速统计(与自定义规则的二维 conditions 不同)。
| 字段 | 类型 | 说明 |
|---|---|---|
conditionId |
integer | 条件 ID;更新时建议原样带回 |
operator |
string | 运算符,如 IP_IN_LIST、EQ |
target |
string | 匹配对象编码 |
name |
string | 展示名或子字段名 |
values |
string[] | 比较取值;数据集合类填 dataListId 字符串 |
rules.action(限速动作)¶
| 字段 | 类型 | 控制台 | 说明 |
|---|---|---|---|
limitAccess |
integer | 请求 | 时间窗内请求次数上限 |
limitTime |
integer | 期间 | 统计时间窗(秒) |
action |
string | 操作 | DENY / LOG |
parameters |
object | 使用以下行为 | 见下表 |
parameters 字段
| 字段 | 类型 | 控制台 | 说明 |
|---|---|---|---|
behavior |
string | 单选 | excess:仅限制超出部分;all:在所选持续时间内阻止全部请求 |
duration |
integer | all 时的持续时间 |
behavior=all 时有效;秒,1–86400。excess 时一般为 null |
limitTime(计数窗口)与 duration(惩罚窗口,仅 all)单位均为秒,含义不同。
与编辑接口的配合¶
- 查询:
GET .../describeLimitRule/{limitRuleId}→ 得到data。 - 回显:将
data填入编辑表单;若wafId为null,从列表或页面上下文补全wafId。 - 保存:
POST .../modifyLimitRule,请求体需包含limitRuleId(编辑时)、wafId、ruleMessage、status、rules。
新增规则时不传 limitRuleId;编辑时必传 limitRuleId。