Create Asset Tree and Associate Asset¶
创建一个资产树,并关联一个已有的资产(设备资产或逻辑资产)作为其根节点。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
资产树管理 |
Full Access |
请求格式¶
POST https://{apigw-address}/asset-tree-service/v2.1/asset-trees?action=associate
请求参数(URI)¶
备注
以下非必须字段中,必须提供 assetId
或 productKey
+ deviceKey
的组合,用于指定设备。
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织 ID。如何获取 orgId 信息>> |
assetId |
Query |
可选 |
String |
待关联的资产 ID。
+ 如指定 |
productKey |
Query |
可选 |
String |
待关联设备的 Product Key。 |
deviceKey |
Query |
可选 |
String |
待关联设备的 Device Key。 |
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
tree |
可选 |
TreeCreateVo 结构体 |
创建资产树所需要的详情。见 TreeCreateVo 结构体>> |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
String |
创建成功的资产树 ID。 |
错误码¶
名称 |
错误信息 |
描述 |
---|---|---|
17772 |
The quota of tree reaches ceiling |
资产树数量达到 OU 上限。 |
99400 |
Invalid arguments |
请求参数非法,请检查请求参数。 |
99500 |
System error |
服务器内部错误,请联系 EnOS。 |
示例¶
请求示例¶
url: https://{apigw-address}/asset-tree-service/v2.1/asset-trees?action=associate&orgId=yourOrgId&assetId=yourAssetId
method: POST
requestBody:
{
"tree":{
"name":{
"defaultValue":"Name"
}
}
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "01b5477a-374e-49a0-8b68-7dbfe8f0b74f",
"data": "cRUdS7sJ"
}
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.Pagination;
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.*;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
public class AssetTreeTest {
private static String AccessKey = "yourAccessKey";
private static String SecretKey = "yourSecretKey";
private static String OrgId = "yourOrgId";
private static String ServerUrl = "yourServerUrl";
@Test
public void testAssociateTree() {
AssociateTreeRequest request = new AssociateTreeRequest();
TreeCreateVo tree = new TreeCreateVo();
I18nVo treeName = new I18nVo();
treeName.setDefaultValue("treeDefaultName");
tree.setName(treeName);
request.setTree(tree);
request.setOrgId(OrgId);
request.setAssetId("yourAssetId");
AssociateTreeResponse response = Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug())
.url(ServerUrl)
.getResponse(request, AssociateTreeResponse.class);
}
}