Search Asset Path


查询资产树上符合条件的路径,路径是从一个上级资产节点到一个下级资产节点的完整路径,可以包含中间经过的资产节点。

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

请求格式

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

请求参数(URI)

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

请求参数(Body)

名称 必需/可选 数据类型 描述
pagination 可选 Pagination 请求结构体 用于在接口请求中描述分页要求。如未指定,默认每页 100 条。每页最大记录数为 1000 条,但为获得最佳性能,建议每页不超过 50 条。不支持使用 sorters 参数对结果进行排序。Pagination 请求结构体>>
from 可选 From-to 结构体 表示资产路径的起始点条件。如果不提供,则表示资产树的根节点。From-to 结构体>>
to 可选 From-to 结构体 表示资产路径的终止点条件。如果不提供,则表示资产树的叶子节点。From-to 结构体>>
projection 可选 Projection 结构体

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

注:EnOS Edge 不支持该参数。
pathProjection 可选 String 可填COMPLETE、END_NODE_ONLY。COMPLETE 表示返回路径上的每个资产节点,默认为 COMPLETE;END_NODE_ONLY 表示只返回路径的起始点和终结点。

From-to 结构体

名称 必需/可选 数据类型 描述
rootModelIds 可选 String 数组 根模型 ID,如果希望查询多个根模型就提供多个根模型 ID。
modelIds 可选 String 数组 资产所属模型 ID。如果想查询多个模型,就提供多个模型 ID 组成的 List。如何获取 modelId 信息>>
assetIds 可选 String 数组 资产 ID,如果希望查询多个资产就提供多个资产ID。如何获取 Asset ID 信息>>

响应参数

名称 数据类型 描述
assets Map (Key 为 String,Value 为 Asset 结构体) 路径上的资产数据。Asset 结构体的结构见下表。
assetPaths String 数组 pathProjection 参数为 COMPLETE 时,其中每一个 String Array 为路径上起始到终止节点的每个资产 ID,长度大于等于2。 当 pathProjection 参数为 END_NODE_ONLY 时,其中每一个 String Array 为路径的起始与终止节点的资产 ID,长度固定为 2。

Asset 结构体

名称 数据类型 描述
assetId String 资产 ID。
name StringI18n 该资产的各语言名称。
description String 资产描述。
attributes Map 资产所属的模型属性。
timezone String 时区。
modelId String 资产所属模型 ID。
modelIdPath String 模型 ID 路径。
tags Tag 结构体 用户自定义标签。
inValid Boolean 节点是否有效。
label String 资产标签。

示例 1

请求示例

url: https://{apigw-address}/asset-tree-service/v2.1/asset-paths?treeId=yourTreeId&action=search&orgId=yourOrgId
method: POST
requestBody:
{
    "pagination":{
        "pageNo":1,
        "pageSize":10
    },
    "projection":[
        "assets.*.attributes",
        "assetPaths"
    ]
}

返回示例

{
  "code": 0,
  "msg": "OK",
  "requestId": "381ffc90-ee96-45a9-bbf4-8f82efed9823",
  "data": {
    "assets": {
      "yourAssetId1": {
        "attributes": {
          "starsystem": "sss",
          "de001": 123
        }
      },
      "yourAssetId2": {
        "attributes": {

        }
      },
      "yourAssetId3": {
        "attributes": {

        }
      },
      "yourAssetId4": {
        "attributes": {

        }
      }
    },
    "assetPaths": [
      [
          "yourAssetId4",
          "yourAssetId1",
          "yourAssetId3"
      ],
      [
          "yourAssetId4",
          "yourAssetId2"
      ]
    ]
  },
  "pagination": {
    "sortedBy": null,
    "pageNo": 1,
    "pageSize": 10,
    "totalSize": 2
  }
}

示例 2

请求示例

url: https://{apigw-address}/asset-tree-service/v2.1/asset-paths?treeId=yourTreeId&action=search&orgId=yourOrgId
method: POST
requestBody:
{
    "pagination":{
        "pageNo":1,
        "pageSize":10
    },
    "from":{
        "modelIds":[
            "extend_model"
        ]
    },
    "to":{
        "assetIds":[
            "MkblvAJ5"
        ]
    }
}

返回示例

{
    "code": 0,
    "msg": "OK",
    "requestId": "94347fc1-4b3c-447b-b542-03fa68a1a88f",
    "data": {
        "assetPaths": [
            [
                "yourAssetId1",
                "yourAssetId2"
            ]
        ],
        "assets": {
            "DWJdfX3D": {
                "inValid": false,
                "assetId": "yourAssetId1",
                "modelId": "extend_model",
                "modelIdPath": "/copy_model/extend_model",
                "name": {
                    "defaultValue": "hahha",
                    "i18nValue": {
                        "en_US": "hahha"
                    }
                },
                "timezone": "+09:00",
                "description": "eeeeee",
                "label": "1",
                "attributes": {
                    "invType": 1,
                    "capacity": 5.0
                },
                "tags": {

                }
            },
            "MkblvAJ5": {
                "inValid": false,
                "assetId": "yourAssetId2",
                "modelId": "planet",
                "modelIdPath": "/planet",
                "name": {
                    "defaultValue": "lkkkkk",
                    "i18nValue": {
                        "en_US": "lkkkkk"
                    }
                },
                "timezone": "+08:00",
                "description": "huyyyyy",
                "label": "1",
                "attributes": {
                    "starsystem": "yyyy",
                    "de001": 123
                },
                "tags": {

                }
            }
        }
    },
    "pagination": {
        "pageNo": 1,
        "pageSize": 10,
        "totalSize": 1
    }
}

SDK 示例


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