数据源服务API

更新时间:2018-11-26 21:49:34

返回值说明

如果没有特殊说明,返回值为以下格式
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 版本 描述
TODO 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 版本 描述
TODO 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"
}

results matching ""

    No results matching ""