Search Event


按条件分页搜索事件。

请求格式

POST https://{apigw-address}/connect-service/v2.1/events?action=search

请求参数(URI)

名称 位置(Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 资产所属的组织 ID。如何获取 orgId 信息>>

请求参数(Body)

注解

以下非必须字段中,必须提供 assetIdproductKey + 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 的查询。目前支持查询的字段是 productKeydeviceKeyassetIdtslEventKeytslEventType。支持的算术运算符是 =、in,逻辑运算符是 and 和 or。如何使用查询表达式>>
pagination 可选 Pagination 请求结构体 分页参数。如未指定,默认每页 10 条。为获得最佳性能,建议每页不超过 50 条。不支持使用 sorters 参数对结果进行排序,查询结果按照 createTime,最近创建的靠前排列。Pagination 请求结构体>>
resolveName 可选 Boolean
  • true:分解 output 信息,返回 eventNameoutputNames 参数。
  • false (默认):不分解 output 信息。eventNameoutputNames 参数皆为空值。

响应参数

名称 数据类型 描述
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);
        }
    }
}