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);
        }
    }
}