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以及like)、attribute_tags`(支持算术运算符=、exists和not exists以及like)、`measurepoint_tags`(支持算术运算符=、exists和not exists以及like)、`service_tags`(支持算术运算符=、exists和not exists以及like)、`event_tags`(支持算术运算符=、exists和not exists以及like)。支持的逻辑运算符为and和or。 `如何使用查询表达式>>  | 
projection  | 
Query  | 
可选  | 
Projection 结构体  | 
对返回结果进行裁剪。对于符合条件的搜索仅返回符合条件的字段,不设置则默认返回全部字段。支持设置的字段有:  | 
pagination  | 
Query  | 
可选  | 
Pagination 结构体  | 
分页参数。如未指定,默认每页 10 条。注意:如果 pageSize 设的偏大,在模型比较大的情况下,接口响应时间会明显增加。为获得最佳性能,建议每页不超过 25 条。不支持使用   | 
响应参数¶
名称  | 
数据类型  | 
描述  | 
|---|---|---|
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");
        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());
    }
}