Search Thing Model¶
根据组织ID搜索物模型。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
模型管理 |
Read |
请求格式¶
POST https://{apigw-address}/model-service/v2.1/thing-models?action=search
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织ID。如何获取orgId信息>> |
scope |
Query |
可选 |
Integer |
该参数默认值为1。 |
请求参数(Body)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
expression |
Query |
可选 |
String |
查询表达式,支持类sql的查询。目前支持查询的字段是`modelId`(支持算术运算符in)、tags`(支持算术运算符=、exists和not exists)。支持的逻辑运算符为and和or。`如何使用查询表达式>> |
projection |
Query |
可选 |
String Array |
对返回结果进行裁剪。对于符合条件的搜索仅返回符合条件的字段,不设置则默认返回全部字段。详见 projection参数如何对结果集做裁剪>> |
pagination |
Query |
可选 |
Pagination请求结构体 |
分页参数。见 Pagination请求结构体>> |
请求参数(Body)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
expression |
Query |
可选 |
String |
查询表达式,支持类sql的查询。目前支持查询的字段是`modelId`(支持算术运算符in)、tags (支持算术运算符=、exists和not exists)。支持的逻辑运算符为and和or。 如何使用查询表达式>> |
projection |
Query |
可选 |
Projection结构体 |
对返回结果进行裁剪。对于符合条件的搜索仅返回符合条件的字段,不设置则默认返回全部字段。详见 projection参数如何对结果集做裁剪>> |
pagination |
Query |
可选 |
Pagination结构体 |
分页参数。不支持使用 |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
ThingModel结构体数组 |
物模型列表。物模型定义请见 ThingModel结构体>> |
ThingModel结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
modelId |
String |
资产所属模型ID。 |
modelIdPath |
String |
模型继承路径。 |
orgId |
String |
资产所属的组织ID。 |
name |
StringI18n |
模型名称。 |
desc |
String |
模型描述。 |
tags |
Map (Key为String,Value为String) |
用户自定义标签。 |
attributes |
Map (Key为String,Value为 |
静态属性定义的map类型值, |
measurepoints |
Map ( |
测点定义的map类型值, |
services |
Map ( |
服务定义的map类型值, |
events |
Map ( |
事件定义的map类型值, |
ThingAttribute结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
identifier |
String |
属性ID。 |
dataType |
String |
数据类型。比如:ARRAY、BOOL、DATE、ENUM、INT、FLOAT、DOUBLE、STRUCT、STRING、TIMESTAMP、FILE。 |
dataDefinition |
String |
本结构体内 |
isRequired |
Boolean |
是否是必须的属性。如果为true,则要求资产在实例化的时候必须设置该属性的值,否则资产在创建的时候会返回校验失败的错误。 |
defaultValue |
根据属性的定义决定 |
属性的默认值。如果没有设置默认值,则为null。 |
name |
StringI18n |
支持国际化的资产名称。 |
desc |
String |
模型描述。 |
tags |
Map (Key为String,Value为String) |
用户自定义标签。 |
isStdElement |
Boolean |
是否是标准元素。 |
stdElementId |
String |
当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: |
unit |
Unit结构体 |
单位。见 Unit结构体>> |
ThingMeasurepoint结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
identifier |
String |
测点ID |
dataType |
String |
数据类型。比如:ARRAY、BOOL、DATE、ENUM、INT、FLOAT、DOUBLE、STRUCT、STRING、TIMESTAMP、FILE。 |
dataDefinition |
String |
本结构体内 |
name |
StringI18n |
支持国际化的资产名称。 |
desc |
String |
模型描述。 |
tags |
Map (Key为String,Value为String) |
用户自定义标签。 |
isStdElement |
Boolean |
是否是标准元素。 |
stdElementId |
String |
当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: |
hasQuality |
Boolean |
是否有质量位。 |
signalType |
String |
信号类型。有如下类型:Generic、AI、PI、DI。 |
unit |
Unit结构体 |
单位。见 Unit结构体>> |
ThingService结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
identifier |
String |
服务ID。 |
name |
StringI18n |
支持国际化的资产名称。 |
desc |
String |
模型描述。 |
tags |
Map (Key为String,Value为String) |
用户自定义标签。 |
isStdElement |
Boolean |
是否是标准元素。 |
stdElementId |
String |
当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: |
intputData |
ThingDatapoint结构体 |
Service的入参列表。 参数定义见 ThingDatapoint结构体>> |
outputData |
ThingDatapoint结构体 |
Service返回参数列表。 参数定义见 ThingDatapoint结构体>> |
callType |
String |
注意:callType已废弃,未来会删除,请不要使用。调用类型。 |
ThingEvent结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
identifier |
String |
事件ID。 |
name |
StringI18n |
支持国际化的资产名称。 |
desc |
String |
模型描述。 |
tags |
Map (Key为String,Value为String) |
用户自定义标签。 |
isStdElement |
Boolean |
是否是标准元素。 |
stdElementId |
String |
当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: |
outputData |
ThingDatapoint结构体 |
Event返回参数列表。 参数定义见 ThingDatapoint结构体>> |
eventType |
String |
事件类型。有 |
ThingDatapoint结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
identifier |
String |
点ID。 |
dataType |
String |
数据类型。比如:ARRAY、BOOL、DATE、ENUM、INT、FLOAT、DOUBLE、STRUCT、STRING、TIMESTAMP、FILE。 |
dataDefinition |
String |
本结构体内 |
name |
StringI18n |
支持国际化的资产名称。 |
desc |
String |
模型描述。 |
tags |
Map (Key为String,Value为String) |
用户自定义标签。 |
isStdElement |
Boolean |
是否是标准元素。 |
stdElementId |
String |
当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: |
unit |
Unit结构体 |
单位。见 Unit结构体>> |
Unit结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
unitId |
String |
单位的标识符。 |
multiplier |
String |
单位的乘数。参见 Multiplier>> |
Multiplier ¶
单位的乘数有如下取值:
YOTTA ,//Y 10^24
ZETTA ,//Z 10^21
EXA ,//E 10^18
PETA ,//P 10^15
TERA ,//T 10^12
GIGA ,//G 10^9
MEGA ,//M 10^6
KILO ,//k 10^3
HECTO ,//h 10^2
DECA ,//da 10^1
ONE ,// 10^0
DECI ,//d 10^-1
CENTI ,//c 10^-2
MILLI ,//m 10^-3
MICRO ,//μ 10^-6
NANO ,//n 10^-9
PICO ,//p 10^-12
FEMTO ,//f 10^-15
ATTO ,//a 10^-18
ZEPTO ,//z 10^-21
YOCTO ,//y 10^-24
错误码¶
示例¶
请求示例¶
url: https://{apigw-address}/model-service/v2.1/thing-models?action=search
method: POST
requestBody:
{
"expression": "modelId in ( \"planet\", \"noiseSensor\" )",
"pagination": {
"pageNo": 1,
"pageSize": 10
},
"orgId": "yourOrgId"
}
返回示例¶
{
"code":0,
"msg":"OK",
"requestId":"c6594307-bc30-4380-9869-b8a88b9494de",
"data":[
{
"modelId":"planet",
"modelIdPath":"/planet",
"orgId":"yourOrgId",
"name":{
"defaultValue":"planet",
"i18nValue":{
"en_US":"planet"
}
},
"desc":"test",
"tags":{
},
"attributes":{
"starsystem":{
"identifier":"starsystem",
"name":{
"defaultValue":"star system",
"i18nValue":{
"en_US":"star system"
}
},
"desc":"",
"tags":{
},
"stdElementId":"urn:user:modelelement:std:atom-property-int:1.0",
"isStdElement":true,
"dataType":"STRING",
"unit":null,
"isRequired":false,
"defaultValue":null
}
},
"measurepoints":{
"temperature":{
"identifier":"temperature",
"name":{
"defaultValue":"temperature",
"i18nValue":{
"en_US":"temperature"
}
},
"desc":"temperature",
"tags":{
},
"stdElementId":"urn:user:modelelement:std:atom-property-int:1.0",
"isStdElement":true,
"dataType":"FLOAT",
"hasQuality":false,
"signalType":"Generic",
"unit":{
"unitId":"°C",
"multiplier":"ONE"
}
}
},
"services":{
"speedup":{
"identifier":"speedup",
"name":{
"defaultValue":"speedup",
"i18nValue":{
"en_US":"speedup"
}
},
"desc":"t",
"tags":{
},
"outputData":[
{
"identifier":"delta",
"name":{
"defaultValue":"delta",
"i18nValue":{
"en_US":"delta"
}
},
"desc":"",
"tags":{
},
"dataType":"INT",
"unit":null
}
],
"inputData":[
{
"identifier":"delta",
"name":{
"defaultValue":"delta",
"i18nValue":{
"en_US":"delta"
}
},
"desc":"",
"tags":{
},
"dataType":"INT",
"unit":{
"unitId":"rpm",
"multiplier":"ONE"
}
}
],
"callType":"ASYNC"
}
},
"events":{
"alert":{
"identifier":"alert",
"name":{
"defaultValue":"alert",
"i18nValue":{
"en_US":"alert"
}
},
"desc":"e",
"tags":{
},
"outputData":[
{
"identifier":"event1",
"name":{
"defaultValue":"event1",
"i18nValue":{
"en_US":"event1"
}
},
"desc":"",
"tags":{
},
"dataType":"INT",
"unit":null
}
],
"eventType":"ERROR"
}
}
},
{
"modelId":"noiseSensor",
"modelIdPath":"/noiseSensor",
"orgId":"yourOrgId",
"name":{
"defaultValue":"Noise Sensor",
"i18nValue":{
"en_US":"Noise Sensor"
}
},
"desc":"Noise Sensor",
"tags":{
},
"attributes":{
},
"measurepoints":{
},
"services":{
},
"events":{
}
}
],
"pagination":{
"pageNo":1,
"pageSize":10,
"totalSize":2
}
}
Java SDK调用示例¶
public class SearchThingModel {
private static String accessKey = "yourAppAccessKey";
private static String secretKey = "yourAppSecretKey";
private static String orgId = "yourOrgId";
private static String url = "https://{apigw-address}";
public static void main(String[] args) {
SearchThingModelRequest request = new SearchThingModelRequest();
request.setOrgId(orgId);
request.setExpression("modelId in ( \"planet\" )");
Projection projection = new Projection();
projection.add("modelId");
projection.add("name.defaultValue");
request.setProjection(projection);
SearchThingModelResponse response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
.url(url)
.getResponse(request, request.getResponseClass());
System.out.println(response.getData());
}
}