Search Thing Model¶
根据组织ID搜索物模型。
请求格式¶
http://{apigw-address}/model-service/v2.1/thing-models?action=search
请求参数(URI)¶
名称 |
位置(Path/Query) |
是否必须 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
True |
String |
资产所属的组织ID。如何获取orgId信息>> |
scope |
Query |
False |
Integer |
查询范围。 0:只从 |
expression |
Query |
False |
String |
查询表达式,支持类sql的查询。目前支持查询的字段是 |
pagination |
Query |
False |
Pagination请求结构体 |
分页参数。见Pagination请求结构体>> |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
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类型值,key为静态属性ID,value为属性定义,属性定义的结构请见ThingAttribute结构体。 |
measurepoints |
Map (Key为String,Value为 |
静态属性定义的map类型值,key为测点ID,value为测点定义,测点定义的结构请见ThingMeasurepoint结构体。 |
services |
Map (Key为String,Value为 |
服务定义的map类型值,key为服务ID,value为服务定义,服务定义的结构请见ThingService结构体。 |
events |
Map (Key为String,Value为 |
事件定义的map类型值,key为事件ID,value为事件定义,事件定义的结构请见ThingEvent结构体。 |
ThingAttribute结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
identifier |
String |
属性ID |
dataType |
String |
数据类型。比如:ARRAY、BOOL、DATE、ENUM、INT、FLOAT、DOUBLE、STRUCT、STRING、TIMESTAMP、FILE |
dataDefinition |
String |
本结构体内 |
isRequired |
Boolean |
是否是必须的属性。如果为true,则要求资产在实例化的时候必须设置该属性的值,否则资产在创建的时候会返回校验失败的错误 |
name |
StringI18n |
支持国际化的资产名称 |
desc |
String |
模型描述 |
tags |
Map (Key为String,Value为String) |
用户自定义标签 |
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) |
用户自定义标签 |
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) |
用户自定义标签 |
intputData |
ThingDatapoint结构体 |
Service的入参列表。 参数定义见ThingDatapoint结构体。 |
outputData |
ThingDatapoint结构体 |
Service返回参数列表。参数定义见ThingDatapoint结构体。 |
callType |
String |
调用类型 |
ThingEvent结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
identifier |
String |
事件ID |
name |
StringI18n |
支持国际化的资产名称 |
desc |
String |
模型描述 |
tags |
Map (Key为String,Value为String) |
用户自定义标签 |
outputData |
ThingDatapoint结构体 |
Event返回参数列表。参数定义见ThingDatapoint结构体。 |
eventType |
String |
事件类型。有INFO、WARN、ERROR三种取值 |
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) |
用户自定义标签 |
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
错误码¶
示例¶
请求示例¶
POST http://{apigw-address}/model-service/v2.1/thing-models?action=search
{
"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": "行星",
"i18nValue": {
"en_US": "planet"
}
},
"desc": "test",
"tags": {},
"attributes": {
"starsystem": {
"identifier": "starsystem",
"name": {
"defaultValue": "星系",
"i18nValue": {
"en_US": "star system"
}
},
"desc": "",
"tags": {},
"dataType": "STRING",
"unit": null,
"dataDefinition": "{\n \"maxLength\": 100\n}",
"isRequired": false
}
},
"measurepoints": {
"temperature": {
"identifier": "temperature",
"name": {
"defaultValue": "temperature",
"i18nValue": {
"en_US": "temperature"
}
},
"desc": "kdkdkkd",
"tags": {},
"dataType": "FLOAT",
"unit": {
"unitId": "°C",
"multiplier": "ONE"
},
"dataDefinition": null,
"hasQuality": false,
"signalType": "Generic"
}
},
"services": {
"speedup": {
"identifier": "speedup",
"name": {
"defaultValue": "speedup",
"i18nValue": {
"en_US": "speedup"
}
},
"desc": "t",
"tags": null,
"outputData": [
{
"identifier": "delta",
"name": {
"defaultValue": "delta",
"i18nValue": {
"en_US": "delta"
}
},
"desc": "",
"tags": {},
"dataType": "INT",
"unit": null,
"dataDefinition": null
}
],
"inputData": [
{
"identifier": "delta",
"name": {
"defaultValue": "delta",
"i18nValue": {
"en_US": "delta"
}
},
"desc": "",
"tags": {},
"dataType": "INT",
"unit": {
"unitId": "rpm",
"multiplier": "ONE"
},
"dataDefinition": null
}
],
"callType": "ASYNC"
}
},
"events": {
"alert": {
"identifier": "alert",
"name": {
"defaultValue": "alert",
"i18nValue": {
"en_US": "alert"
}
},
"desc": "e",
"tags": null,
"outputData": [
{
"identifier": "event1",
"name": {
"defaultValue": "event1",
"i18nValue": {
"en_US": "event1"
}
},
"desc": "",
"tags": {},
"dataType": "INT",
"unit": null,
"dataDefinition": null
}
],
"eventType": "ERROR"
}
}
},
{
"modelId": "noiseSensor",
"modelIdPath": "/noiseSensor",
"orgId": "yourOrgId",
"name": {
"defaultValue": "Noise Sensor",
"i18nValue": {
"en_US": "Noise Sensor"
}
},
"desc": "噪声传感器",
"tags": {},
"attributes": {},
"measurepoints": {},
"services": {},
"events": {}
}
],
"pagination": {
"pageNo": 1,
"pageSize": 10,
"totalSize": 2
}
}
Java SDK调用示例¶
public class SearchThingModel {
private static String accessKey = "4ced4f38-1ced-476e0a446215-a602-4307";
private static String secretKey = "0a446215-a602-4307-9ff2-3feed3e983ce";
private static String orgId = "1c499110e8800000";
private static String url = "http://{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());
}
}