管理接口
更新时间:2019-06-14
创建规则
方法 | API | 说明 |
---|---|---|
POST | /v1/rules | 创建规则 |
请求参数
参数名 | 说明 | 示例 |
---|---|---|
endpoint | 需要规则引擎处理的mqtt主题对应的服务实例 | myendpoint |
from | 需要规则引擎处理的mqtt主题 | topic/sensor01 |
description | 规则描述 | 过滤传感器温度过高消息的规则 |
destinations | 处理后的消息写往的目的地数组(TSDB, KAFKA,另一个MQTT主题) | 见下表 |
select | 输出哪些字段,SQL语法 | *, name, data.temperature |
name | 规则名称 | sensor_warn |
where | 消息过滤条件,SQL语法 | data.temperature>90 |
dictionary | 所绑定的规则字典的uuid | 规则字典的uuid |
其中,destinations数组中,每个元素包含如下2个字段:
参数名 | 说明 | 示例 |
---|---|---|
kind | 目的地类型,可能取值:MQTT, KAFKA, TSDB, BOS, MQTT_DYNAMIC, BOS, SMS, FUNCTION, BIN2JSON, RULE, RDS, DICTIONARY | MQTT |
value | 对应不同的目的地id或者地址 | /result/topic |
上表中, kind的取值及其含义:
取值 | 解释 | 示例 |
---|---|---|
MQTT | 物接入主题 | /result/topic |
KAFKA | 百度消息服务(Kafka)主题 | b1f91fbe6fe54d2eaf70ef0025f1c3c2__topic1 |
TSDB | 时序数据库 | iottelemetry3.tsdb-qksrpsyxqndy.tsdb.iot.gz.baidubce.com |
MQTT_DYNAMIC | 物接入动态主题选择器 | 'result/' deviceid |
BOS | 百度对象存储 | bos://mybucket/folder1 |
SMS | 短信接收人uuid | |
FUNCTION | 函数计算名称[:结果目的地主题] | myfunc, 或者myfunc:/result/topic |
BIN2JSON | 二进制消息转JSON | /result/topic |
RULE | 规则引擎 | 下游规则引擎uuid |
RDS | 关系数据库 | 连接配置uuid |
DICTIONARY | 规则字典 | 规则字典uuid |
返回参数
参数名 | 说明 | 示例 |
---|---|---|
endpoint | 等同传入参数endpoint | endpoint1 |
state | 规则的状态(ENABLED, DISABLED) | ENABLED |
from | 等同传入参数from | mytopic1 |
description | 等同传入参数description | desc1 |
accountUuid | 当前账号的account uuid | 124343-adef-132232 |
destinations | 类似传入参数destinations,同时加上id, ruleid信息 | |
select | 等同传入参数select | name, * |
name | 等同传入参数name | rulename |
where | 等同传入参数where | abc > 8 AND name like '%yyj%' |
uuid | 系统为规则分配的唯一id | 764736473643 |
dictionary | 绑定的规则字典uuid | aa82fb4d-9b1f-4b01-90eb-feaad3afbd59 |
请求示例
{
"endpoint": "endpoint1",
"from": "mytopic1",
"description": "desc1",
"destinations": [
{
"value": "dest_topic1",
"kind": "MQTT"
},
{
"value": "kafka_topic1",
"kind": "KAFKA"
},
{
"value": "TSDB_SERVER_URL",
"kind": "TSDB"
}
],
"select": "name, *",
"name": "rulename",
"where": "abc > 8 AND name like '%yyj%'"
}
响应示例
{
"endpoint": "endpoint1",
"state": "ENABLED",
"from": "mytopic1",
"description": "desc1",
"accountUuid": "baidu",
"destinations": [
{
"uuid": "6653da99-bf9a-4e35-ba4f-997e000a699f",
"ruleUuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"value": "dest_topic1",
"kind": "MQTT"
},
{
"uuid": "e03264b7-4e94-43d1-b5cd-fb0e51f08ebe",
"ruleUuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"value": "kafka_topic1",
"kind": "KAFKA"
}
],
"select": "name, *",
"name": "testname3",
"where": "abc > 8 AND name like '%yyj%'",
"uuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"dictionary":"aa82fb4d-9b1f-4b01-90eb-feaad3afbd59"
}
列显规则
方法 | API | 说明 |
---|---|---|
GET | /v1/rules?pageNo=1&pageSize=20 | 列显规则 |
响应示例
{
"totalCount": 1,
"result": [{
"endpoint": "endpoint1",
"state": "ENABLED",
"from": "mytopic1",
"description": "desc1",
"destinations": [{
"uuid": "6653da99-bf9a-4e35-ba4f-997e000a699f",
"ruleUuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"value": "dest_topic1",
"kind": "MQTT"
},
{
"uuid": "e03264b7-4e94-43d1-b5cd-fb0e51f08ebe",
"ruleUuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"value": "kafka_topic1",
"kind": "KAFKA"
}
],
"select": "name, *",
"name": "testname3",
"createTime": "2016-08-11T06:39:49Z",
"where": "abc > 8 AND name like '%yyj%'",
"updateTime": "2016-08-11T06:39:49Z",
"uuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"dictionary": "aa82fb4d-9b1f-4b01-90eb-feaad3afbd59"
}],
"order": "desc",
"orderBy": "createtime",
"pageSize": 2,
"pageNo": 1
}
为规则添加目的地
方法 | API | 说明 |
---|---|---|
POST | /v1/destinations | 为规则添加目的地 |
请求参数
参数名 | 说明 | 示例 |
---|---|---|
ruleUuid | 需要添加目的地的规则id | 34882348382 |
kind | 目的地类型,可能取值参考表1 | MQTT |
value | 不同类型目的地对应的id或者地址 | topic/sensor_warn |
请求示例
{
"ruleUuid": "9dd573fe-9246-4eaa-bc2f-2ef88615521d",
"value": "dest_topic1_no3",
"kind": "MQTT"
}
从规则中删除目的地
方法 | API | 说明 |
---|---|---|
DELETE | /v1/destinations/{desinnation_id} | {desinnation_id}为目的地id |
请求示例
DELETE http://re.iot.gz.baidubce.com/v1/destinations/c48f65ae-3c18-44d2-952b-4d94d1d16ef4
读取规则详情
方法 | API | 说明 |
---|---|---|
GET | /v1/rules/{rule_id} | {rule_id}为规则id |
请求示例
GET http://re.iot.gz.baidubce.com/v1/rules/43257469-643e-4a1c-81df-8cca28d96dbc
响应示例
{
"endpoint": "endpoint1",
"state": "ENABLED",
"from": "mytopic1",
"description": "desc1",
"destinations": [{
"uuid": "6653da99-bf9a-4e35-ba4f-997e000a699f",
"ruleUuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"value": "dest_topic1",
"kind": "MQTT"
},
{
"uuid": "e03264b7-4e94-43d1-b5cd-fb0e51f08ebe",
"ruleUuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"value": "kafka_topic1",
"kind": "KAFKA"
}
],
"select": "name, *",
"name": "testname3",
"createTime": "2016-08-11T06:39:49Z",
"where": "abc > 8 AND name like '%yyj%'",
"updateTime": "2016-08-11T06:39:49Z",
"uuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"dictionary": "aa82fb4d-9b1f-4b01-90eb-feaad3afbd59"
}
修改规则
方法 | API | 说明 |
---|---|---|
PUT | /v1/rules/{rule_id} | {rule_id}为拟修改的规则的id |
请求参数
参数名 | 说明 | 示例 |
---|---|---|
from | 需要规则引擎处理的mqtt主题 | topic/sensor01 |
description | 规则描述 | 过滤传感器温度过高消息的规则 |
select | 输出哪些字段,SQL语法 | *, name, data.temperature |
where | 消息过滤条件,SQL语法 | data.temperature>90 |
请求示例
{
"from": "mytopic1_update",
"description": "desc1",
"select": "name, *, abc",
"where": "abc > 8 AND name like '%yyj% or 1 < 2'"
}
响应示例
{
"endpoint": "endpoint1",
"state": "ENABLED",
"from": "mytopic1_update",
"description": "desc1",
"destinations": [{
"uuid": "6653da99-bf9a-4e35-ba4f-997e000a699f",
"ruleUuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"value": "dest_topic1",
"kind": "MQTT"
},
{
"uuid": "e03264b7-4e94-43d1-b5cd-fb0e51f08ebe",
"ruleUuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"value": "kafka_topic1",
"kind": "KAFKA"
}
],
"select": "name, *, abc",
"name": "testname3",
"createTime": "2016-08-11T06:39:49Z",
"where": "abc > 8 AND name like '%yyj% or 1 < 2'",
"updateTime": "2016-08-11T06:44:13Z",
"uuid": "218cf057-ec2d-415c-8952-cd5cfb641bde",
"dictionary": "aa82fb4d-9b1f-4b01-90eb-feaad3afbd59"
}
批量删除规则
方法 | API | 说明 |
---|---|---|
POST | /v1/rules/batch/delete | 批量删除规则 |
请求参数
参数名|说明|示例
rules|需要删除的规则id数组|"43257469-643e-4a1c-81df-8cca28d96dbc",
"2f74da12-a846-4b70-bf3a-7a22e0c56bc0"
请求示例
{
"rules": [
"43257469-643e-4a1c-81df-8cca28d96dbc",
"2f74da12-a846-4b70-bf3a-7a22e0c56bc0"
]
}
禁用一条规则
方法 | API | 说明 |
---|---|---|
PUT | /v1/rules/{ruleid}/disable | {ruleid}为需要禁用的规则id |
请求示例
PUT http://re.iot.gz.baidubce.com/v1/rules/218cf057-ec2d-415c-8952-cd5cfb641bde/disable
启用一条规则
方法 | API | 说明 |
---|---|---|
PUT | /v1/rules/{ruleid}/enable | {ruleid}为需要启用的规则id |
请求示例
PUT http://re.iot.gz.baidubce.com/v1/rules/218cf057-ec2d-415c-8952-cd5cfb641bde/enable