文档
2.2.0
  • latest
  • stable
  • 2.4.4
  • 2.4.0
  • 2.3.0
  • 2.2.0
  • 2.1.0
  • preview
简体中文
  • English
  • 简体中文

资产树服务 API

简介

  • 资产树服务概述

API 参考

  • 资产树
  • 资产树节点
    • Associate Asset
    • Batch Associate Asset
    • Create and Associate Asset
    • Move Asset Node
    • Delete Asset Node
    • Search Asset Node
    • Search Related Asset Node
      • 操作权限
      • 请求格式
      • 请求参数(URI)
      • 请求参数(Body)
        • Filter 结构体
        • I18nSearchVo 结构体
      • 响应参数
        • AssetVo 结构体
      • 错误码
      • 示例
        • 请求示例
        • 返回示例
        • Java SDK 调用示例
    • Get Asset Trees
    • Search Asset Path

其他参考

  • 有关 EnOS API
  • 如何调用 EnOS API
  • 有关资产树

最近更新 2024-08-21

  • 文档
  • 资产树节点
  • Search Related Asset Node

Search Related Asset Node¶


查询指定资产树上的资产,指定相对于某个已知资产的关系作为查询条件。

操作权限¶

需授权的资源

所需操作权限

资产树管理

Read

请求格式¶

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

请求参数(URI)¶

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

资产所属的组织 ID。如何获取 orgId 信息>>

treeId

Query

必需

String

需要获取的资产树 ID。如何获取资产树信息 ID>>

请求参数(Body)¶

名称

必需/可选

数据类型

描述

filter

可选

Filter 结构体

资产的查询条件。 所有的条件都是可选的。 所有指定的条件之间都是“与”关系,即待查询的资产必须同时满足所有指定的条件。 4 个关系查询条件至多提供一个,其结构参见 Filter 结构体。

pagination

可选

Pagination 请求结构体

用于在接口请求中描述分页要求。如未指定,默认每页 100 条。每页最大记录数为 1000 条,但为获得最佳性能,建议每页不超过 50 条。不支持使用 sorters 参数对结果进行排序。其结构参见 Pagination 请求结构体。

projection

可选

Projection 结构体

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

Filter 结构体 ¶

备注

isParentOfAssetId、isChildOfAssetId、isAncestorOfAssetId 和 isDescendantOfAssetId 不能同时填写多个,每次查询最多支持 1 个。


名称

必需/可选

数据类型

描述

assetIds

可选

String 数组

资产ID。如果想查询多个资产,就提供多个资产ID。如何获取 assetId 信息>>

nameLike

可选

I18nSearchVo 结构体

资产名称,支持模糊搜索。其结构参见 I18nSearchVo 结构体。

modelIds

可选

String 数组

资产所属模型ID。如果想查询多个模型,就提供多个模型 ID。如何获取 modelId 信息>>

rootModelIds

可选

String 数组

资产所属的根模型 ID。如果想查询多个根模型,就提供多个根模型 ID。

isParentOfAssetId

可选(见上述注解)

String

待查询的资产是指定资产的直接父节点,值为指定资产的资产 ID。如何使用查询表达式>>

isChildOfAssetId

可选(见上述注解)

String

待查询的资产是指定资产的直接子节点,值为指定资产的资产 ID。如何使用查询表达式>>

isAncestorOfAssetId

可选(见上述注解)

String

待查询的资产是指定资产的祖先节点,值为指定资产的资产 ID。如何使用查询表达式>>

isDescendantOfAssetId

可选(见上述注解)

String

待查询的资产是指定资产的子孙节点,值为指定资产的资产 ID。如何使用查询表达式>>

I18nSearchVo 结构体 ¶

名称

必需/可选

数据类型

描述

locale

可选

String

语言类型,只支持 default、zh_CN、en_US、ja_JP 和 es_ES。

value

可选

String

资产名称在所属语言下的值。如果为 null,则无数据返回;如果传入空字符串,则返回对应语言下的所有数据。

响应参数¶

名称

数据类型

描述

data

AssetVo 结构体数组

AssetVo 的列表。其结构参见 AssetVo 结构体。

AssetVo 结构体 ¶

名称

数据类型

描述

assetId

String

资产 ID。

modelId

String

资产所属模型 ID。

modelIdPath

String

模型 ID 的路径。

name

StringI18n

支持国际化的资产名称。其结构参见 国际化名称结构体。

timezone

String

资产所属时区。

description

String

资产描述。

label

String

资产类型。

  • 0:设备资产

  • 1:逻辑资产

inValid

Boolean

true 为无效节点,false 为有效节点。

attributes

Map(Key 为 String,Value 为 Object)

资产所属的模型属性。

tags

Map(Key 为 String, Value 为 String)

用户自定义标签。标签的作用与表示方法>>

childAssetNodeCount

Integer

子节点个数。只有选择了 isParentOfAssetId、isChildOfAssetId、isAncestorOfAssetId 或 isDescendantOfAssetId,这个参数才会有值,否则这个值为 null。

注:EnOS Edge 不支持该参数。

错误码¶

名称

错误信息

描述

99400

Invalid arguments

请求参数非法,请检查请求参数。

99500

System error

服务器内部错误,请联系 EnOS。

示例¶

请求示例¶

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

返回示例¶

{
    "code":0,
    "msg":"OK",
    "requestId":"153ad7a2-2ec1-41b0-b750-e4ea2ce2786c",
    "data":[
        {
            "assetId":"8byS3cuc",
            "name":{
                "i18nValue":{

                },
                "defaultValue":"ycmdevice_1"
            },
            "attributes":{

            },
            "childAssetNodeCount": 6
        },
        {
            "assetId":"Fq5M1Y6E",
            "name":{
                "i18nValue":{

                },
                "defaultValue":"ycmdevice_3"
            },
            "attributes":{

            },
            "childAssetNodeCount": 2
        },
        {
            "assetId":"nPQUW0Nr",
            "name":{
                "i18nValue":{
                    "en_US":"Rebecca_testSiteAPI3"
                },
                "defaultValue":"Rebecca_testSiteAPI3"
            },
            "attributes":{

            },
            "childAssetNodeCount": 3
        },
        {
            "assetId":"oLrrH1uz",
            "name":{
                "i18nValue":{

                },
                "defaultValue":"Rebecca_Service1"
            },
            "attributes":{

            },
            "childAssetNodeCount": 6
        },
        {
            "assetId":"vuT6x3Xl",
            "name":{
                "i18nValue":{

                },
                "defaultValue":"ycmdevice_2"
            },
            "attributes":{

            },
            "childAssetNodeCount": 1
        }
    ],
    "pagination":{
        "pageNo":1,
        "pageSize":10,
        "totalSize":10,
        "sortedBy":null
    }
}

Java SDK 调用示例¶

package com.envisioniot.enos.asset_tree_service;

import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.request.Projection;
import com.envisioniot.enos.asset_tree_service.v2_1.*;
import com.envisioniot.enos.asset_tree_service.vo.AssetSearchVo;
import com.envisioniot.enos.asset_tree_service.vo.RelatedAssetSearchVo;
import org.junit.Test;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class SearchNodeTest {
    private static String AccessKey = "yourAccessKey";
    private static String SecretKey = "yourSecretKey";
    private static String OrgId = "yourOrgId";
    private static String ServerUrl = "yourServerUrl";

    @Test
    public void testSearchRelatedAssetNode() {
        SearchRelatedAssetNodeRequest request = new SearchRelatedAssetNodeRequest();
        request.setOrgId(OrgId);
        request.setTreeId("yourTreeId");
        RelatedAssetSearchVo filter = new RelatedAssetSearchVo();
        filter.setIsChildOfAssetId("yourAssetId");
        Projection onep = new Projection();
        onep.addAll(Arrays.asList("attributes", "assetId", "name"));
        request.setFilter(filter);
        request.setProjection(onep);
        request.setFilter(filter);
        SearchRelatedAssetNodeResponse response =
            Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug()).url(ServerUrl)
            .getResponse(request, SearchRelatedAssetNodeResponse.class);
    }
}
Previous Next
本页内容
  • Search Related Asset Node
    • 操作权限
    • 请求格式
    • 请求参数(URI)
    • 请求参数(Body)
      • Filter 结构体
      • I18nSearchVo 结构体
    • 响应参数
      • AssetVo 结构体
    • 错误码
    • 示例
      • 请求示例
      • 返回示例
      • Java SDK 调用示例
© Envision Digital. All Rights Reserved. |   隐私政策   用户协议