Search Event¶
按条件分页搜索事件。
请求格式¶
POST https://{apigw-address}/connect-service/v2.1/events?action=search
请求参数(URI)¶
名称 | 位置(Path/Query) | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|---|
orgId | Query | 必需 | String | 资产所属的组织 ID。如何获取 orgId 信息>> |
请求参数(Body)¶
注解
以下非必须字段中,必须提供 assetId
或 productKey
+ deviceKey
的组合,用于指定设备。
名称 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
productKey | 可选(见上述注解) | String | 设备的 product key,需与 deviceKey 一起使用。 |
deviceKey | 可选(见上述注解) | String | 设备的 device key,需与 productKey 一起使用。 |
assetId | 可选(见上述注解) | String | 资产 ID。如何获取 assetId 信息>> |
tslEventKey | 可选 | String | 事件 key。 |
tslEventType | 可选 | String | 事件类型。 |
startTime | 可选 | String | 开始时间,针对事件的发生时间而言,格式 yyyy-MM-dd HH:mm:ss 代表查询本地时间,yyyy-MM-ddTHH:mm:ssZ 代表 UTC 时间,如果不填,默认最近一周的数据。 |
endTime | 可选 | String | 结束时间,针对事件的发生时间而言,格式 yyyy-MM-dd HH:mm:ss 代表查询本地时间,yyyy-MM-ddTHH:mm:ssZ 代表 UTC 时间,如果不填,默认最近一周的数据。 |
expression | 可选 | String | 查询表达式,支持类 SQL 的查询。目前支持查询的字段是 productKey 、deviceKey 、assetId 、tslEventKey 、tslEventType 。支持的算术运算符是 =、in,逻辑运算符是 and 和 or。如何使用查询表达式>> |
pagination | 可选 | Pagination 请求结构体 | 分页参数。如未指定,默认每页 10 条。为获得最佳性能,建议每页不超过 50 条。不支持使用 sorters 参数对结果进行排序,查询结果按照 createTime ,最近创建的靠前排列。Pagination 请求结构体>> |
resolveName | 可选 | Boolean |
|
响应参数¶
名称 | 数据类型 | 描述 |
---|---|---|
data | Event 结构体数组 | 有关 Event 结构体的定义,见 Event 结构体。 |
Event 结构体 ¶
名称 | 数据类型 | 描述 |
---|---|---|
orgId | String | 资产所属的组织 ID。 |
eventId | String | 事件 ID。 |
productKey | String | Product Key。 |
deviceKey | String | Device Key。 |
assetId | String | 资产 ID。 |
tslEventKey | String | TSL 模型中的事件 Key。 |
tslEventType | String | TSL 模型中定义的事件类型。 |
output | String | 事件的输出。 |
outputData | Map(Key 为 String,Value 为 Object) | 事件的输出 JSON 格式。 |
timestamp | Long | 事件发生时间戳。 |
localtime | String | 事件发生本地时间。 |
eventName | StringI18n | 事件的名称。结构参见 国际化名称结构体。 |
outputNames | Map(Key 为 String,Value 为 StringI18n) | 事件的输出名称。 |
示例¶
请求示例¶
url:https://{apigw-address}/connect-service/v2.1/events?action=search&orgId=yourOrgId
method: POST
requestBody:
{
"pagination":{
"pageNo":1,
"pageSize":2
},
"action":"search",
"resolveName":true
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "7b5d3c98-27bd-435c-a8e5-ffd0c91e679f",
"data": [
{
"eventId": "2021032347372528c9dd2035cdf169f6e60c6d1a",
"orgId": "yourOrgId",
"productKey": "yourProductKey",
"deviceKey": "yourDeviceKey",
"assetId": "yourAssetId",
"tslEventKey": "yourEventKey",
"tslEventType": "INFO",
"output": "{\"breakdown\":0}",
"outputData": {
"breakdown": 0
},
"timestamp": 1616495975000,
"localtime": "2021-03-23 18:39:35",
"eventName": {
"defaultValue": "event",
"i18nValue": {}
},
"outputNames": {
"breakdown": {
"defaultValue": "breakdown",
"i18nValue": {
"en_US": "breakdown",
"zh_CN": "分解"
}
}
}
}
],
"pagination": {
"pageNo": 1,
"pageSize": 2,
"totalSize": 1
}
}
Java SDK 调用示例¶
package com.envisioniot.enos.api.sample.connect_service.event;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.request.Pagination;
import com.envisioniot.enos.connect_service.v2_1.event.SearchEventRequest;
import com.envisioniot.enos.connect_service.v2_1.event.SearchEventResponse;
import com.google.gson.Gson;
public class SearchEvent {
public static void main(String[] args) {
String appKey = "yourAppKey";
String appSecret = "yourAppSecret";
SearchEventRequest request = new SearchEventRequest();
Pagination pagination = new Pagination();
pagination.setPageNo(1);
pagination.setPageSize(2);
request.setPagination(pagination);
request.setOrgId("yourOrgId");
request.setResolveName(true);
try {
SearchEventResponse response = Poseidon.config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
.url("yourServerUrl")
.getResponse(request, SearchEventResponse.class);
Gson gson = new Gson();
System.out.println(gson.toJson(response));
} catch (Exception e) {
System.out.print(e);
}
}
}