统计数据
接口说明
该接口用于获取统计数据
接口地址
/v2/statistics
接口类型
Http
请求方式
POST
内容类型
application/json
鉴权策略
参见《Open-API鉴权协议》
请求参数
请求头
body参数内容
{
"tableName": "statRecordProgress",
"attributes": [
"orgId",
"recordId",
"progressId",
"recordDate",
"spotName"
],
"where": {
"orgId": 115447320523904,
"recordDate": { "$gt": "2019-05-26 08:10:20.320" }
},
"order": "-recordId",
"offset": 0,
"limit": 500
}
body参数说明
| 参数名称 | 数据类型 | 是否必填 | 说明 |
|---|---|---|---|
| tableName | string | 是 | 指定查询的表名称,不能为空 |
| attributes | array | 否 | 查询字段,不传则查询表所有字段 |
| where | json | 否 | 查询条件,json格式,传入方式参考Sequelize文档说明,目前支持的Sequelize常用条件语句 见表1 |
| order | string | 否 | 排序字段,不传则默认按表主键字段排序,多个字段以逗号分隔,字段间不允许有空格,倒序排时在字段前加'-',如:"-orgId,id",表示ORDER BY orgId DESC, id ASC |
| offset | int | 否 | 分页参数:开始位置,不传则默认为0 |
| limit | int | 否 | 分页参数:返回指定的数据条数,不传则默认为500,上限为500条,0 <= limit <= 500。如果limit > 500, 则最多返回500条数据 |
其他说明
目前大部分统计表数据接口仅支持单表全量获取数据,暂不支持增量抓取,所以应灵活运用where条件筛选需要的数据(比如使用组织机构Id进行过滤等),最好每天定时抓取一次数据
如果表中含有version字段,则表示该统计表支持增量抓取数据,where语句中可传入条件: {"version": { "$gte": lastMaxVersion } }, order参数按version排序,其中:lastMaxVersion为上次获取数据中的最大版本号
响应报文
[
{
"orgId": 115447320523904,
"recordId": 525537410748416,
"progressId": 444724655042560,
"recordDate": "2019-06-24T16:00:00.000Z",
"spotName": "工点1"
}
]
响应状态码
| 字段名称 | 数据类型 |
|---|---|
| 200 | 成功 |
| 400 | 用户请求头中Authorization值的格式不对,错误码:InvalidArgument。 |
| 403 | AccessId不存在或被禁用 错误码:InvalidAccessId |
| 500 | 非法参数或接口执行异常 |
响应数据结构
表1 where支持的条件语句
| 条件 | 描述 |
|---|---|
| $and | $and: {a: 5} // AND (a = 5) |
| $or | $or: [{a: 5}, {a: 6}] // (a = 5 OR a = 6) |
| $in | { id: { $in: [1, 2] } } // id IN [1, 2] |
| $notIn | { id: { $notIn: [1, 2] } } // id NOT IN [1, 2] |
| $gt | { id: { $gt: 6 } } // id > 6 |
| $gte | { id: { $gte: 6 } } // id >= 6 |
| $lt | { id: { $lt: 10 } } // id < 10 |
| $lte | { id: { $lte: 10 } } // id <= 10 |
| $eq | { id: { $eq: 20 } } // id = 20 |
| $ne | { id: { $ne: 20 } } // id != 20 |
| $like | { name: { $like: '%hat' } } // name LIKE '%hat' |
| $notLike | { name: { $notLike: '%hat } } // name NOT LIKE '%hat' |
where语句用法举例
- javascript
{
id: 1,
title: 'Boat'
}
// id = 1 and title = 'Boat'
{
rank: {
$or: {
$lt: 1000,
$eq: null
}
}
}
或者
{
$or: [
{ rank: { $lt: 1000 } },
{ rank: { $eq: null } }
]
}
// rank < 1000 OR rank IS NULL
{
createdAt: {
$gte: '2019-05-26 00:00:00.000',
$lte: '2019-06-25 00:00:00.000'
}
}
// createdAt <= [timestamp] AND createdAt >= [timestamp]
{
$or: [
{
title: {
$like: 'Boat%'
}
},
{
description: {
$like: '%boat%'
}
}
]
}
// title LIKE 'Boat%' OR description LIKE '%boat%'