Search Asset Node


查询满足条件的资产。

如果你在使用 API 批量更新相关资产树信息后调用当前 API,建议两次调用间隔 2 秒左右,以免获取到未更新数据。

请求格式

POST https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=searchAsset

请求参数(URI)

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

请求参数(Body)

注解

可使用 expressionfilter 进行搜索,但不能同时使用。EnOS Cloud 仅支持 expression 进行搜索,EnOS Edge 则支持 expressionfilter.


名称 必需/可选 数据类型 描述
expression 可选 String

查询表达式,目前查询的字段和对应的运算符清单如下。

  • assetIdmodelIdrootModelIdtreeId:支持 in 和 =。
  • assetIdsmodelIdsrootModelIds:支持 in。
  • productKeydeviceKeyattributes:支持 like 和 =。
  • createTime:支持 =、<=、>= 运算符。筛选的是 asset 的创建时间
  • tags.*:支持 like、exists 和 in。
  • name:支持指定语言模糊查询:
    • name like 'xxx':模糊查询 default、中文和英文名称。
    • name.default like 'xxx':模糊查询默认名称。
    • name.zh_CN like 'xxx':模糊查询中文名称,不存在中文名称时模糊查询 default 名称。
    • name.en_US like 'xxx':模糊查询英文名称,不存在英文名称时模糊查询 default 名称。
    • name.ja_JP like 'xxx':模糊查询日文名称,不存在日文名称时模糊查询 default 名称。
    • name.es_ES like 'xxx':模糊查询西班牙文名称,不存在西班牙文名称时模糊查询 default 名称。

不能将其与 filter 一起使用。如何使用查询表达式>>

filter 可选 AssetSearchVo 结构体

查询条件。不能将其与 expression 一起使用。其结构参见 AssetSearchVo 结构体

注:EnOS Cloud 不支持该参数。

pagination 可选 Pagination 请求结构体 随机分页。如未指定,默认每页100条。每页最大记录数为 1000 条,但为获得最佳性能,建议每页不超过 50 条。不支持使用 sorters 参数对结果进行排序。其结构参见 Pagination 请求结构体
projection 可选 Projection 结构体

指定对返回结果的裁剪。对于符合条件的搜索仅返回符合条件的字段,不设置则默认返回全部字段。Projection 参数如何对结果集做裁剪>>

注:EnOS Edge 不支持该参数。

AssetSearchVo 结构体

名称 必需/可选 数据类型 描述
assetIds 可选 String Array 资产列表。
modelIds 可选 String Array 模型列表。
rootModelIds 可选 String Array 根模型列表。
attributes 可选 Map (Key 为 String,Value 为 Object) 资产所属的模型属性。
tags 可选 Map (Key 和 Value 为 String) 用户自定义标签。
nameLike 可选 I18nSearchVo 结构体 资产名称,支持模糊搜索。其结构参见 I18nSearchVo 结构体
treeId 可选 String 资产树的 ID。

I18nSearchVo 结构体

名称 必需/可选 数据类型 描述
locale 可选 String 语言类型,只支持 default、zh_CN、en_US、ja_JP 和 es_ES。
value 可选 String 资产名称在所属语言下的值。如果为 null,则无数据返回;如果传入空字符串,则返回对应语言下的所有数据。

响应参数

名称 数据类型 描述
data 数组 资产列表。信息包括来自 Asset 结构体assetIdnameattributes

错误码

代码 错误信息 描述
99400 Invalid arguments 请求参数非法,请检查请求参数。
99500 System error 服务器内部错误,请联系EnOS。

示例

请求示例

url: https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=searchAsset&orgId=yourOrgId
method: POST
requestBody:
{
"projection": ["attributes", "assetId", "name"]
}

返回示例

{
    "code": 0,
    "msg": "OK",
    "requestId": "cf08e75c-325a-429f-bdb9-ec5d6a1250d7",
    "pagination": {
       "pageNo": 1,
       "pageSize": 10,
       "totalSzie": 10,
       "sortedBy": null
    },
    "data": [{
       "assetId": "yourAssetId1",
       "name": {
           "i18nValue": {},
           "defaultValue": "earth"
       },
       "attributes": {
           "starsystem": "Solar System",
           "de001": 123
       }
    }, {
       "assetId": "yourAssetId2",
       "name": {
           "i18nValue": {},
           "defaultValue": "earth"
       },
       "attributes": {
           "starsystem": "Solar System",
           "de001": 123
       }
    }, {
       "assetId": "yourAssetId3",
       "name": {
           "i18nValue": {},
           "defaultValue": "earth"
       },
       "attributes": {
           "starsystem": "Solar System",
           "de001": 123
       }
    }, {
       "assetId": "yourAssetId4",
       "name": {
           "i18nValue": {},
           "defaultValue": "venus"
       },
       "attributes": {
           "starsystem": "Solar System",
           "de001": 123
       }
    }, {
       "assetId": "yourAssetId5",
       "name": {
           "i18nValue": {},
           "defaultValue": "1559140566137"
       },
       "attributes": {
           "starsystem": "Solar System",
           "de001": 123
       }
    }, {
       "assetId": "yourAssetId6",
       "name": {
           "i18nValue": {},
           "defaultValue": "earth"
       },
       "attributes": {
           "starsystem": "Solar System",
           "de001": 123
       }
    }, {
       "assetId": "yourAssetId7",
       "name": {
           "i18nValue": {},
           "defaultValue": "earth"
       },
       "attributes": {
           "starsystem": "Solar System",
           "de001": 123
       }
    }]
}

SDK 示例


你可以在 Github 上获取资产树服务 API 的 SDK 示例: