数据源服务类API
更新时间:2018-12-20 20:57:41
返回值说明
如果没有特殊说明,返回值为以下格式
200 代表成功,否则失败. 以下API文档的返回值均为data字段的内容
成功
{
"code":200,
"data":xxx // 取决与具体的API
}
失败
code非200代表请求失败
{
"code":460,
"message": "参数错误"
}
条件表达式参数
数据查询支持复杂的条件表达式
名称
|
类型
|
必要
|
描述
|
op
|
String
|
是
|
AND 与 OR 或 EQ 等于 NEQ 不等于 LT 小于 GT 大于 LE 小于等于 GE 大于等于 IN 包含 NOT-IN 不包含
|
condition
|
JSON数组
|
是
|
条件数组
|
col
|
String
|
是
|
数据节点名称
|
value
|
String
|
是
|
待比较的值,如果使用${a.b}格式,表明value取自数据源a,数据节点b
|
单层嵌套
{
"op":"and", // 支持and/or
"condition":[
{"col":"deviceId", "op":"eq", "value":"foo"},
{"col":"productKey", "op":"neq", "value":"zoo"}]
}
多层嵌套
{
"op":"and",
"condition":[
{
"op":"or",
"condition":[
{"col":"temp", "op":"gt", "value":13},
{"col":"iotId", "op":"eq", "value":"foo"}]
},
{"col":"productKey", "op":"neq", "value":"zoo"}]
}
创建数据源
path | 版本 | 描述 |
---|---|---|
/data/datasource/meta/create | 1.0.9 | 创建数据源 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
dataSource | JSON对象 | 是 | 数据源信息,详见‘数据源参数’ |
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
数据源参数
名称
|
类型
|
必要
|
描述
|
name
|
String
|
是
|
数据源名称
|
enName
|
String
|
是
|
数据源标识
|
version
|
String
|
是
|
默认 1.0.0
|
type
|
String
|
否
|
数据源的类型
CUSTOM: API/文件导入
PRODUCT:产品上报
|
mainSource
|
String
|
否
|
主数据来源,仅当type为PRODUCT时有效
|
desc
|
String
|
否
|
数据源描述
|
join
|
JSON数组
|
否
|
关联信息
|
expr
|
JSON对象
|
否
|
过滤条件
|
nodes
|
JSON数组
|
是
|
数据节点
|
数据节点参数
节点有三种:
PRODUCT 产品
DATASOURCE 数据源
CUSTOM 自定义
数据源类型为 PRODUCT(设备上传)时,节点类型有PRODUCT和DATASOURCE
数据源类型为 CUSTOM(文件/API上传)时,节点类型有 CUSTOM
公共参数
名称
|
类型
|
必要
|
描述
|
name
|
String
|
是
|
数据节点名称
|
enName
|
String
|
是
|
数据源名称
|
fieldType
|
String
|
是
|
字段类型
STRING 字符类型
DATETIME 时间类型
INT 整型
DOUBLE 浮点数
BOOLEAN 布尔类型
ENUM 枚举
|
length
|
INT
|
否
|
字段长度,主要用于设置STRING类型
|
enumValues
|
ENUM
|
否
|
枚举值,仅当fieldType为ENUM时有效
|
nodeType
|
String
|
是
|
节点类型
DIM 维度
INDEX 度量
FIELD 字段
|
sourceType
|
String
|
是
|
节点来源
PRODUCT 产品
DATASOURCE 数据源
CUSTOM 自定义(文件/API上传)
|
自定义节点
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
isPrimaryKey | BOOL | 否 | 是否是主键 |
autoInc | BOOL | 否 | 是否自增 |
来源自数据源节点
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
sourceId | LONG | 是 | 来源数据源ID |
sourceNodeId | LONG | 是 | 来源数据节点ID |
产品节点
名称
|
类型
|
必要
|
描述
|
function
|
STRING
|
否
|
聚集函数
MAX 最大值
MIN 最小值
AVG 平均值
SUM 总和
|
storage
|
STRING
|
是
|
存储类型
DETAIL 明细
SNAPSHOT 快照
|
windowSize
|
Long
|
否
|
窗口大小
|
windowUnit
|
STRING
|
否
|
窗口单位
SECOND 秒
MINUTE 分
HOUR 小时
|
updateMode
|
STRING
|
否
|
更新频率
REALTIME 实时
TIMING 定时
CHANGE 有变化时
|
updateIntervalSize
|
LONG
|
否
|
更新时间间隔大小
|
updateIntervalUnit
|
STRING
|
否
|
更新时间单位, 同windowUnit
|
sourceMid
|
LONG
|
是
|
来源模型ID
|
sourceCid
|
LONG
|
是
|
来源列ID
|
expr
|
JSON 对象
|
否
|
条件表达式
|
请求示例
设备上传数据源
{
"id":123, // 数据源ID
"name":"冷库", // 数据源名称
"enName": "lk", // 数据源标识
"version": "1.0.0", // 版本号
"type": "PRODUCT", // 数据源类型: product(来自于产品), custom(自定义数据源)
"mainSource": "PRODUCT", // 主数据来源,仅当type为PRODUCT时有效
"desc": "描述", // 数据源描述
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
"status": 1, // 定义见SourceStatusEnum
"published": false // 表示数据源是否发布过 true代表发布过,false代表没有发布过
"join":[{ // 关联表信息
"id": 123, 关联数据源ID
"name":"lk_info", // 关联数据源标识
"expr":{ // 这里的iotId和productKey是每个设备消息内部都有的值,不会在数据源信息中体现,
//前端直接hardcode即
"op":"AND", // 支持and/or
"condition":[
{"col":"iotId", "op":"eq", "value":"${lk_info.device_id}"},
{"col":"productKey", "op":"eq", "value":"${lk_info.product_key}"}
]}
}],
"expr":{ // 数据源过滤条件
"op":"OR",
"condition":[
{"col":"lk_info.origin", "op":"EQ", "value":"广东"},
{"col":"lk_info.type", "op":"EQ", "value":"主压缩机"}
]
},
"nodes": [{ // 该node来自产品
"id":456, // node id
"name":"冷库温度警报", // 名称
"enName":"lk_alert", // 标识符
"sourceType":"PRODUCT", // 来源类型 定义见NodeSourceType
"sourceMid":1234, // 来源ID 保存的是`产品设备json`中的mid
"sourceCid":11, // `产品设备json` 中的cid
"fieldType":"STRING", // 字段类型,见FieldTypeEnum
"nodeType":"INDEX", // 节点类型,详见NodeTypeEnum
"function":"avg", // 函数,支持 avg,min,max,sum
"windowSize":"30", // 窗口大小
"windowUnit":"SECOND", // 窗口单位 支持 SECOND/MINUTE/HOUR
"updateMode":"TIMING", // 更新方式 REALTIME(实时)/TIMING(定时)/CHANGE(有变化时更新)
"updateIntervalUnit":"SECOND", //930新增 更新窗口单位 支持 SECOND/MINUTE/HOUR
"updateIntervalSize":"20", // 930新增 更新时间间隔大小
"storage":"DETAIL", // 支持 DETAIL(详情), SNAPSHOT(快照)
"expr":{
// 数据节点过滤条件 -- 可以用节点本身的值 ,(iotId, productKey)以及关联数据源节点
"op":"AND",
"condition":[
{"col":"lk_info.lk_alert", "op":"eq", "value":"ABNORMAL"}
]
},
"period":[ //930新增 时间段,仅当选择了函数且时间窗口为 指定时间段 时才有
{
"start":"12:30",
"end":"15:55"
},
{
"start":"18:13",
"end":"19:30"
}
],
},
{ // 该node来自关联数据源
"id":457, // node id
"name":"冷库名称", // 名称
"enName":"lk_alert", // 标识符
"sourceType":"DATASOURCE", // 来源类型 定义见NodeSourceType
"sourceId":1234, // 数据源ID
"sourceNodeId":9, // 数据节点ID
"fieldType":"STRING", // 字段类型,见FieldTypeEnum
"nodeType":"DIM", // 节点类型,详见NodeTypeEnum
}]
}
文件/API上传
{
"id":123, // 数据源ID
"name":"气候信息", // 数据源名称
"enName": "lk", // 数据源标识
"version": "1.0.0", // 版本号
"type": "CUSTOM", // 数据源类型: product(来自于产品), custom(自定义数据源)
"desc": "描述", // 数据源描述
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
"status": 1, // 定义见SourceStatusEnum --readonly
"nodes": [{
"id":1, // 数据节点ID
"name":"温度", // 名称
"enName":"temperature", //
"sourceType":"CUSTOM", // 来源类型 定义见NodeSourceType
"fieldType":"DOUBLE", //
"nodeType":"INDEX", // 度量
"isPrimaryKey":false //
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
},
{
"id":2, // 数据节点ID
"name":"城市", // 名称
"enName":"city", // 标识符
"sourceType":"CUSTOM",
"fieldType":"STRING", // 字段类型,见FieldTypeEnum
"length": 100, // 字符串长度,可选,不填会设置默认值128(改值可能根据实际业务会有调整)
"nodeType":"INDEX", // 节点类型,详见NodeTypeEnum
"isPrimaryKey":false //
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
},
{
"id":3, // 数据节点ID
"name":"ID", // 名称
"enName":"id", // 标识符
"sourceType":"CUSTOM",
"fieldType":"INT", // 字段类型,见FieldTypeEnum
"nodeType":"FIELD", // 字段
"isPrimaryKey":true // 主键
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
},
{
"id":4, // 数据节点ID
"name":"时间", // 名称
"enName":"time", // 标识符
"sourceType":"CUSTOM",
"fieldType":"DATETIME", // 字段类型,见FieldTypeEnum
"nodeType":"DIM", // 维度
"isPrimaryKey":true // 主键
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
},
{
"id":5, // 数据节点ID
"name":"状态", // 名称
"enName":"status", // 标识符
"sourceType":"CUSTOM",
"fieldType":"ENUM", // 字段类型,见FieldTypeEnum
"enumValues":[ // 枚举值定义,仅当fieldType为enum时生效
{"remark":"正常","value":"NORMAL"},
{"remark":"异常","value":"ABNORMAL"}],
"nodeType":"INDEX", // 度量
"isPrimaryKey":true // 主键
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
}]
}
返回示例
{
"code":200,
"data":1234 //数据源ID
}
创建默认数据源
path | 版本 | 描述 |
---|---|---|
/data/datasource/meta/create/default | 1.0.9 | 创建默认数据源 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{
"ctx":{}
}
返回示例
{
"code":200,
"data":1234 //数据源ID
}
获取产品信息
path
|
版本
|
描述
|
/data/datasource/product/list
|
1.0.9
|
获取产品信息
|
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{
"ctx":{}
}
返回示例
选中产品的具体属性/事件后,mid/cid字段需要传给对应产品节点的sourceMid/sourceCid
{
"code": 200,
"data": {
"productSchemaDTOList": [{
"tenantScopeId": "C849E0FEA5954A98AB1ED07BB974FC5F",
"productKey": "a1HJnPxLTOF",
"dataSources": [{
"typeDesc": "能力属性",
"dataType": "ability",
"attrs": [{
"cType": "INT",
"name": "int1",
"mid": 355,
"cid": 781,
"cEnName":"a"
}, {
"cType": "INT",
"name": "12",
"mid": 355,
"cid": 782,
"cEnName":"b"
}, {
"cType": "INT",
"name": "11",
"mid": 355,
"cid": 783,
"cEnName":"c"
}, {
"cType": "DATETIME",
"name": "时间戳,标准格式",
"mid": 355,
"cid": 784,
"cEnName":"d"
}, {
"cType": "STRING",
"name": "设备产品key",
"mid": 355,
"cid": 785,
"cEnName":"e"
}, {
"cType": "STRING",
"name": "设备唯一标识",
"mid": 355,
"cid": 786,
"cEnName":"f"
}]
}, {
"typeDesc": "事件",
"dataType": "event",
"attrs": [{
"subAttrs": [{
"cType": "DATETIME",
"name": "时间戳,标准格式",
"mid": 354,
"cid": 778,
"cEnName":"g"
}, {
"cType": "STRING",
"name": "设备产品key",
"mid": 354,
"cid": 779,
"cEnName":"f"
}, {
"cType": "STRING",
"name": "设备唯一标识",
"mid": 354,
"cid": 780,
"cEnName":"h"
}],
"name": "induc"
}]
}],
"productName": "能力属性"
}]
},
"message": "success"
}
修改数据源状态
path | 版本 | 描述 |
---|---|---|
/data/datasource/meta/publish/async | 1.0.9 | 异步发布数据源 |
/data/datasource/meta/delete | 1.0.9 | 删除数据源 |
/data/datasource/meta/withdraw | 1.0.9 | 撤回数据源 |
状态说明
状态 | CODE | 进入状态方法 | 说明 |
---|---|---|---|
待发布 | UNPUBLISH | 初始状态 | 可以修改数据源schema |
已发布 | PUBLISH | 待发布,已撤回,发布失败调用publish接口 | 可以修改数据,不能修改数据源schema |
已撤回 | WITHDRAW | 发布调用withdraw接口 | 可以添加数据节点,不能删除数据节点 |
删除 | DELETED | 待发布,已撤回 调用delete接口 | |
发布失败 | PUBLISH_FAILED | 调用发布接口失败 | 如果之前没有发布成功,可以修改数据源schema,如果已经发布成功过,只能添加数据节点 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
id | Long数组 | 否 | 数据源ID,id或name必须填一个 |
name | String数组 | 否 | 数据源标识,id或name必须填一个 |
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{"ctx":{},"name":"foo"}
返回示例
{"code":200}
查询数据源
定义描述
path | 版本 | 描述 |
---|---|---|
/data/datasource/data/list | 1.0.9 | 查询数据源信息 |
请求参数
以下所有的字段都非必要字段,每一个字段相当于一个过滤选项。
名称
|
类型
|
必要
|
描述
|
id
|
Long数组
|
否
|
数据源ID
|
name
|
String数组
|
否
|
数据源标识
|
cnName
|
String数组
|
否
|
数据源名称
|
searchName
|
String
|
否
|
搜索关键字,会返回数据源标识符/数据源名称中包含此关键字的内容
|
status
|
String数组
|
否
|
状态。
UNPUBLISH: 已保存
PUBLISH: 已发布
WITHDRAW: 已撤回
PUBLISH_FALIED: 发布失败
|
page
|
JSON
|
否
|
分页设置
to: 第几页,从1开始
size: 每页有多少元素
|
order
|
JSON
|
否
|
排序设置
col 需要排序的列
type: 顺序,支持DESC/ASC
|
type
|
String
|
否
|
表的类型
CUSTOM: 重新组建数据源(自建表数据源)
PRODUCT:根据以后数据源创建的数据源(产品数据源)
|
ctx
|
JSON对象
|
是
|
用户信息占位符,传一个空json对象{} 即可
|
请求示例
这个例子只是用来演示每个字段的取值,实际查询中只需要设置需要的过滤字段
{
"ctx":{}
"id":[123, 345], // 数据源ID
"name":["lk"], // 数据源名称(标识符)
"cnName":["温度信息"],// 数据源名称(中文名)
"searchName": abc,//搜索关键字,会返回数据源名称或数据源表示包含此字段的数据源
"status":["PUBLISH","UNPUBLISH"], // 状态
"page":{"to":1, "size":15}, // 分页设置
"order":{"col":"id", "type":"desc"} // 顺序
"type": "CUSTOM"//表的类型
}
如果想要获取该用户的所有数据源,直接传一个空对象即可
{
"ctx":{}
}
返回示例
返回结果中的page字段中会包含total,代表一共有多少个数据源。
{
"page":{"to":1, "size":3,"total":10}
"dataSourceList":[
{xxx}, //xxx为具体的数据源json,详见下方数据源示例
{xxx},
{xxx}
]
}
类型定义
类型
|
取值
|
备注
|
NodeSourceType
|
PRODUCT 产品节点
CUSTOM 自定义节点
DATASOURCE 来自数据源
|
数据源来源类型
|
FieldTypeEnum
|
STRING 字符串
DATETIME 时间
INT 整形
DOUBLE 浮点
BOOLEAN 布尔
ENUM 枚举
|
字段类型
|
NodeTypeEnum
|
DIM 维度
INDEX 度量
FIELD 字段
|
节点类型
|
SourceStatusEnum
|
UNPUBLISH: 已保存 PUBLISH: 已发布 WITHDRAW: 已撤回 PUBLISH_FALIED: 发布失败
|
数据源状态
|
根据已有数据源创建(设备数据源)
{
"id":123, // 数据源ID
"name":"冷库", // 数据源名称
"enName": "lk", // 数据源标识
"version": "1.0.0", // 版本号
"type": "PRODUCT", // 数据源类型: product(来自于产品), custom(自定义数据源)
"mainSource": "PRODUCT", // 主数据来源,仅当type为PRODUCT时有效
"desc": "描述", // 数据源描述
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
"status": 1, // 定义见SourceStatusEnum
"published": false // 表示数据源是否发布过 true代表发布过,false代表没有发布过
"join":[{ // 关联表信息
"id": 123, 关联数据源ID
"name":"lk_info", // 关联数据源标识
"expr":{ // 这里的iotId和productKey是每个设备消息内部都有的值,不会在数据源信息中体现,
//前端直接hardcode即
"op":"AND", // 支持and/or
"condition":[
{"col":"iotId", "op":"eq", "value":"${lk_info.device_id}"},
{"col":"productKey", "op":"eq", "value":"${lk_info.product_key}"}
]}
}],
"expr":{ // 数据源过滤条件
"op":"OR",
"condition":[
{"col":"lk_info.origin", "op":"EQ", "value":"广东"},
{"col":"lk_info.type", "op":"EQ", "value":"主压缩机"}
]
},
"nodes": [{ // 该node来自产品
"id":456, // node id
"name":"冷库温度警报", // 名称
"enName":"lk_alert", // 标识符
"sourceType":"PRODUCT", // 来源类型 定义见NodeSourceType
"sourcePath":"XSOYttNIeBn.ability.压力告警.温度", // 来源路径 --废弃 该值可以不传
"sourceMid":1234, // 来源ID 保存的是`产品设备json`中的mid
"sourceCid":11, // `产品设备json` 中的cid
"fieldType":"STRING", // 字段类型,见FieldTypeEnum
"nodeType":"INDEX", // 节点类型,详见NodeTypeEnum
"function":"avg", // 函数,支持 avg,min,max,sum
"windowSize":"30", // 窗口大小
"windowUnit":"SECOND", // 窗口单位 支持 SECOND/MINUTE/HOUR
"updateMode":"TIMING", // 更新方式 REALTIME(实时)/TIMING(定时)/CHANGE(有变化时更新)
"updateIntervalUnit":"SECOND", //930新增 更新窗口单位 支持 SECOND/MINUTE/HOUR
"updateIntervalSize":"20", // 930新增 更新时间间隔大小
"storage":"DETAIL", // 支持 DETAIL(详情), SNAPSHOT(快照)
"expr":{
// 数据节点过滤条件 -- 可以用节点本身的值 ,(iotId, productKey)以及关联数据源节点
"op":"AND",
"condition":[
{"col":"lk_info.lk_alert", "op":"eq", "value":"ABNORMAL"}
]
},
"period":[ //930新增 时间段,仅当选择了函数且时间窗口为 指定时间段 时才有
{
"start":"12:30",
"end":"15:55"
},
{
"start":"18:13",
"end":"19:30"
}
],
},
{ // 该node来自关联数据源
"id":457, // node id
"name":"冷库名称", // 名称
"enName":"lk_alert", // 标识符
"sourceType":"DATASOURCE", // 来源类型 定义见NodeSourceType
"sourcePath":"lk_info.name", // 来源路径
"sourceId":1234, // 数据源ID
"sourceNodeId":9, // 数据节点ID
"fieldType":"STRING", // 字段类型,见FieldTypeEnum
"nodeType":"DIM", // 节点类型,详见NodeTypeEnum
}]
}
重新组建数据源(自建表数据源)
{
"id":123, // 数据源ID
"name":"气候信息", // 数据源名称
"enName": "lk", // 数据源标识
"version": "1.0.0", // 版本号
"type": "CUSTOM", // 数据源类型: product(来自于产品), custom(自定义数据源)
"desc": "描述", // 数据源描述
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
"status": 1, // 定义见SourceStatusEnum --readonly
"nodes": [{
"id":1, // 数据节点ID
"name":"温度", // 名称
"enName":"temperature", //
"sourceType":"CUSTOM", // 来源类型 定义见NodeSourceType
"fieldType":"DOUBLE", //
"nodeType":"INDEX", // 度量
"isPrimaryKey":false //
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
},
{
"id":2, // 数据节点ID
"name":"城市", // 名称
"enName":"city", // 标识符
"sourceType":"CUSTOM",
"fieldType":"STRING", // 字段类型,见FieldTypeEnum
"length": 100, // 字符串长度,可选,不填会设置默认值128(改值可能根据实际业务会有调整)
"nodeType":"INDEX", // 节点类型,详见NodeTypeEnum
"isPrimaryKey":false //
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
},
{
"id":3, // 数据节点ID
"name":"ID", // 名称
"enName":"id", // 标识符
"sourceType":"CUSTOM",
"fieldType":"INT", // 字段类型,见FieldTypeEnum
"nodeType":"FIELD", // 字段
"isPrimaryKey":true // 主键
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
},
{
"id":4, // 数据节点ID
"name":"时间", // 名称
"enName":"time", // 标识符
"sourceType":"CUSTOM",
"fieldType":"DATETIME", // 字段类型,见FieldTypeEnum
"nodeType":"DIM", // 维度
"isPrimaryKey":true // 主键
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
},
{
"id":5, // 数据节点ID
"name":"状态", // 名称
"enName":"status", // 标识符
"sourceType":"CUSTOM",
"fieldType":"ENUM", // 字段类型,见FieldTypeEnum
"enumValues":[ // 枚举值定义,仅当fieldType为enum时生效
{"remark":"正常","value":"NORMAL"},
{"remark":"异常","value":"ABNORMAL"}],
"nodeType":"INDEX", // 度量
"isPrimaryKey":true // 主键
"createTime": "2018-03-24 00:00:00", // 创建时间 readonly
"modifyTime": "2018-03-24 01:00:00", // 最近一次修改时间 readonly
}]
}
查询数据
定义描述
path | 版本 | 描述 |
---|---|---|
/data/writebackdata/insert | 1.0.9 | 数据源中插入数据。如果插入的数据主键已存在,则覆盖该主键对应的数据。 |
请求参数
名称
|
类型
|
必要
|
描述
|
id
|
Long
|
是
|
数据源ID,id或name至少填一个。
|
name
|
String
|
是
|
数据源名称,id或name至少填一个。
|
page
|
JSON
|
否
|
分页设置
to: 第几页,从1凯斯
size: 每页有多少元素
|
orderby
|
JSON数组
|
否
|
排序设置
col 需要排序的列
type: 顺序,支持DESC/ASC
|
nodes
|
JSON数组
|
是
|
节点名称
|
expr
|
JSON
|
否
|
条件表达式
|
ctx
|
JSON对象
|
是
|
用户信息占位符,传一个空json对象{} 即可
|
返回有序数据
如果想要返回的数据按照时间排序,可以设置order参数。对于产品节点,time_stamp是数据的上报时间,对于重新组建数据源的节点,time_stamp是数据在表内插入的时间。
"orderby":[{"col":"time_stamp", "type":"desc"}]
已有数据源创建的数据查询
已有数据源的数据查询有1点比较特殊,它的node中有且仅有一个产品数据节点(PRODUCT),其余节点的类型是来自关联数据源的节点(DATASOURCE), 其余参数和'重新组件数据源'保持一致。
查询时的过滤条件可以选择 产品数据节点以及来源自关联数据源的节点. 其它的关联表节点不能作为过滤条件.
假设一个数据源有产品节点A1, A2, 关联数据源节点B1,B2,B3. 当用户选中A1进行查询的时候,nodes参数也应该包含关联数据源节点B1,B2,B3.
请求示例
{
"ctx":{}
"id":123, // 数据源ID,id或名称至少填一个
"name":"lk", // 数据源名称
"expr":{
"op":"and", // 支持and/or
"condition":[
{"col":"deviceId", "op":"eq", "value":"foo"},
{"col":"productKey", "op":"neq", "value":"zoo"}
]},
"nodes":[{"name":"deviceId", "func":"avg"}, //需要查询的列名, 作用于列上的函数
{"name":"productKey", "func":"max"},
{"name":"date"}],
"page":{"to":1, "size":15}, // 分页信息 size:分页大小,to,第几个页面,从1开始
"orderby":[{"col":"id", "type":"asc"}] // 排序的依据
}
返回示例
{
"code":200,
"data":{
"nodes":["deviceId", "productKey","status"],
"data": [
["abc","def","NORMAL"],
["ABC","DDD", "ABNORMAL"]
]
}
}
插入数据
定义描述
path | 版本 | 描述 |
---|---|---|
/data/writebackdata/insert | 1.0.9 | 数据源中插入数据。如果插入的数据主键已存在,则覆盖该主键对应的数据。 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
id | Long | 是 | 数据源ID,id或name至少填一个。 |
name | String | 是 | 数据源名称,id或name至少填一个。 |
nodes | 数组 | 是 | 待插入的数据节点 |
data | 数组 | 是 | 需要插入的数据 |
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{
"nodes": ["id","city","temp","time"],
"data": [[1,"北京",10.1,"2018-04-26 00:00:00"],
[2,"上海",20.3,"2018-04-26 01:00:00"],
[3,"杭州",19.8,"2018-04-26 02:00:00"]],
"ctx": {},
"name": "NewApiTestali_084093P"
}
返回示例
{
"code":200,
"data":3 //插入数据条数
}
删除数据
定义描述
path | 版本 | 描述 |
---|---|---|
/data/datasource/data/delete | 1.0.9 | 删除数据 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
id | Long | 是 | 数据源ID,id或name至少填一个。 |
name | String | 是 | 数据源名称,id或name至少填一个。 |
expr | JSON | 是 | 条件表达式 |
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{
"ctx": {},
"name": "NewApiTestali_084093P",
"expr": {
"op": "AND",
"condition": [
{"col": "city","op": "EQUAL","value": "北京"}
]
}
}
返回示例
{
"code": 200,
"data": 1, // 删除数据的行数
"id": "8374eb7d-66e8-47fe-a11c-5f037cf69e0f"
}
SPC任务手动计算
定义描述
path | 版本 | 描述 |
---|---|---|
/data/datasource/spc/call | 1.0.18 | spc任务手动计算 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
id | Long | 是 | spc任务id。 |
sync | Boolean | 否 | 是否异步调用,默认异步 |
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{
"ctx": {},
"id": 1
}
返回示例
{
"code": 200,
"id": "8374eb7d-66e8-47fe-a11c-5f037cf69e0f"
}
主数据服务
定义描述
path | 版本 | 描述 |
---|---|---|
/data/datasource/master/invoke | 1.0.18 | 主数据服务 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
methodName | String | 是 | 方法名,如:createMasterData |
params | String | 是 | 业务参数 |
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{
"ctx": {},
"methodName": "createMasterData",
"params": "{\"name\":\"name1\",\"description\":\"description1\"}"
}
返回示例
{
"code": 200,
"data": 1, // createMasterData执行结果
"id": "8374eb7d-66e8-47fe-a11c-5f037cf69e0f"
}
工厂建模数据服务
定义描述
path | 版本 | 描述 |
---|---|---|
/data/datasource/factorydata/invoke | 1.0.9 | 工厂建模数据服务 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
methodName | String | 是 | 方法名,如:queryData |
params | String | 是 | 查询参数 |
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{
"ctx": {},
"methodName": "queryData",
"params": "{\"beltline\":{\"id\":1},\"startTime\":\"2018-12-11 16:20:00\",\"endTime\":\"2018-12-11 17:20:00\",\"type\":\"PROCESS\",\"process\":{\"id\":1}}"
}
返回示例
{
"code": 200,
"data": [], // queryData的执行结果
"id": "8374eb7d-66e8-47fe-a11c-5f037cf69e0f"
}
工厂建模服务
定义描述
path | 版本 | 描述 |
---|---|---|
/data/datasource/factory/invoke | 1.0.18 | 工厂建模服务 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
methodName | String | 是 | 方法名,如:createFactory |
params | String | 是 | 业务参数,请求的具体内容 |
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{
"ctx": {},
"methodName": "createFactory",
"params": "{\"desc\":\"工厂描述\"}"
}
返回示例
{
"code": 200,
"data": 1, // createFactory的执行结果
"id": "8374eb7d-66e8-47fe-a11c-5f037cf69e0f"
}
数据源管理服务
定义描述
path | 版本 | 描述 |
---|---|---|
/data/datasource/invoke | 1.0.18 | 数据源管理服务 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
methodName | String | 是 | 方法名,如:getDataSource |
params | String | 是 | 业务参数 |
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{
"ctx": {},
"methodName": "getDataSource",
"params": "{\"id\":1}"
}
返回示例
{
"code": 200,
"data": {}, // getDataSource的执行结果
"id": "8374eb7d-66e8-47fe-a11c-5f037cf69e0f"
}
数据源数据服务
定义描述
path | 版本 | 描述 |
---|---|---|
/data/datasource/data/invoke | 1.0.18 | 数据源数据服务 |
请求参数
名称 | 类型 | 必要 | 描述 |
---|---|---|---|
methodName | String | 是 | 方法名,如:queryData |
params | String | 是 | 业务参数 |
ctx | JSON对象 | 是 | 用户信息占位符,传一个空json对象{} 即可 |
请求示例
{
"ctx": {},
"methodName": "queryData",
"params": "{\"id\": 123,\"nodes\":[{\"name\":\"deviceId\"},{\"name\":\"productKey\"},{\"name\":\"date\"}],\"page\":{\"to\":1, \"size\":15}}"
}
返回示例
{
"code": 200,
"data": [], // queryData的执行结果
"id": "8374eb7d-66e8-47fe-a11c-5f037cf69e0f"
}