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

  • 0:只从`orgId`指定的组织搜索;

  • 1:从`orgId`指定的组织和公有模型所在的组织搜索。

该参数默认值为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结构体

分页参数。不支持使用 sorters 对结果进行排序,结果按照模型的创建顺序,先创建的靠前排列。见 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为 ThingAttribute 结构体)

静态属性定义的map类型值, key 为静态属性ID, value 为属性定义。属性定义的结构请见 ThingAttribute结构体>>

measurepoints

Map ( key 为String,valueThingMeasurepoint 结构体)

测点定义的map类型值,key 为测点ID, value 为测点定义。测点定义的结构请见 ThingMeasurepoint结构体>>

services

Map ( key 为String, valueThingService 结构体)

服务定义的map类型值, key 为服务ID, value 为服务定义。服务定义的结构请见 ThingService结构体>>

events

Map ( key 为String, valueThingEvent 结构体)

事件定义的map类型值, key 为事件ID, value 为事件定义。事件定义的结构请见 ThingEvent结构体>>

ThingAttribute结构体

名称

数据类型

描述

identifier

String

属性ID。

dataType

String

数据类型。比如:ARRAY、BOOL、DATE、ENUM、INT、FLOAT、DOUBLE、STRUCT、STRING、TIMESTAMP、FILE。

dataDefinition

String

本结构体内 datatype 的数据定义,是一个JSON字符串。如对于String的数据类型,需要定义长度。对于enum的数据类型需要定义取值及描述。详见 如何使用dataDefinition>>

isRequired

Boolean

是否是必须的属性。如果为true,则要求资产在实例化的时候必须设置该属性的值,否则资产在创建的时候会返回校验失败的错误。

defaultValue

根据属性的定义决定

属性的默认值。如果没有设置默认值,则为null。

name

StringI18n

支持国际化的资产名称。

desc

String

模型描述。

tags

Map (Key为String,Value为String)

用户自定义标签。

isStdElement

Boolean

是否是标准元素。 true 为是, false 为否。

stdElementId

String

当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: <id> : <version>id 为元素标识符,<version> 表示元素的版本。如果该元素不是标准元素,则值为 null

unit

Unit结构体

单位。见 Unit结构体>>

ThingMeasurepoint结构体

名称

数据类型

描述

identifier

String

测点ID

dataType

String

数据类型。比如:ARRAY、BOOL、DATE、ENUM、INT、FLOAT、DOUBLE、STRUCT、STRING、TIMESTAMP、FILE。

dataDefinition

String

本结构体内 datatype 的数据定义,是一个JSON字符串。如对于String的数据类型,需要定义长度。对于enum的数据类型需要定义取值及描述。详见 如何使用dataDefinition>>

name

StringI18n

支持国际化的资产名称。

desc

String

模型描述。

tags

Map (Key为String,Value为String)

用户自定义标签。

isStdElement

Boolean

是否是标准元素。 true 为是, false 为否。

stdElementId

String

当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: <id> : <version>id 为元素标识符,<version> 表示元素的版本。如果该元素不是标准元素,则值为 null

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

是否是标准元素。 true 为是, false 为否。

stdElementId

String

当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: <id> : <version>id 为元素标识符,<version> 表示元素的版本。如果该元素不是标准元素,则值为 null

intputData

ThingDatapoint结构体

Service的入参列表。 参数定义见 ThingDatapoint结构体>>

outputData

ThingDatapoint结构体

Service返回参数列表。 参数定义见 ThingDatapoint结构体>>

callType

String

注意:callType已废弃,未来会删除,请不要使用。调用类型。 SYNC 表示同步, ASYNC 表示异步。

ThingEvent结构体

名称

数据类型

描述

identifier

String

事件ID。

name

StringI18n

支持国际化的资产名称。

desc

String

模型描述。

tags

Map (Key为String,Value为String)

用户自定义标签。

isStdElement

Boolean

是否是标准元素。 true 为是, false 为否。

stdElementId

String

当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: <id> : <version>id 为元素标识符,<version> 表示元素的版本。如果该元素不是标准元素,则值为 null

outputData

ThingDatapoint结构体

Event返回参数列表。 参数定义见 ThingDatapoint结构体>>

eventType

String

事件类型。有 INFOWARNERROR 三种取值。

ThingDatapoint结构体

名称

数据类型

描述

identifier

String

点ID。

dataType

String

数据类型。比如:ARRAY、BOOL、DATE、ENUM、INT、FLOAT、DOUBLE、STRUCT、STRING、TIMESTAMP、FILE。

dataDefinition

String

本结构体内 datatype 的数据定义,是一个JSON字符串。如对于String的数据类型,需要定义长度。对于enum的数据类型需要定义取值及描述。详见 如何使用dataDefinition>>

name

StringI18n

支持国际化的资产名称。

desc

String

模型描述。

tags

Map (Key为String,Value为String)

用户自定义标签。

isStdElement

Boolean

是否是标准元素。 true 为是, false 为否。

stdElementId

String

当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: <id> : <version>id 为元素标识符,<version> 表示元素的版本。如果该元素不是标准元素,则值为 null

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());
    }
}