客流统计云平台帮助文档
万服客流云平台API接口文档
通用步骤:
1.获取token
2.获取场所/区域
3.获取客流数据或其它数据
获取Token
请求URL:POST /wanf-api/get-token/
Body参数:支持表单或json格式提交
| 参数名 | 类型 | 描述 | 必填 | 可选值 | 备注 |
|---|---|---|---|---|---|
| username | string | 用户名 | 是 | ||
| password | string | 密码 | 是 |
请求示例:
{
"username": "test",
"password": "test"
}
返回示例:
{
"token": "28bc3af04fdce53ed4d123405fb1afb3c8810418"
}
获取场所/区域
请求URL:GET /wanf-api/get-site/?level=2&pk=0
Header参数:Authorization:"token 28bc3af04f32e53ced4d123405f1afb3c8810418",token值由API接口获取
说明:当pk等于0,返回当前用户下组织等级等于level值的所有场所,否则返回组织等级等于level值且id=pk值的组织其下级所有组织
Query参数
| 参数名 | 类型 | 描述 | 必填 | 可选值 | 备注 |
|---|---|---|---|---|---|
| level | integer | 查询的组织等级 | 是 | [1,2,3] | 单选,1:一级组织,如公司/集团,2:二级组织,如场所,3:三级组织,如区域 |
| pk | integer | 查询的组织ID | 是 | 单选,如果是0,将查询当前用户的level等级下的所有组织 |
返回示例:
{
"code": 1,
"msn": [
{
"pk": 88,
"name": "万服集团"
}
]
}
PS:如提供错误的值或没有权限都将返回一个空的组织列表或400响应
获取客流数据
请求URL:POST /wanf-api/people-counting-data/
Header参数:Authorization:"token 28bc3af04f32e53ced4d123405f1afb3c8810418",token值由API接口获取
Body参数:支持表单或json格式提交
| 参数名 | 类型 | 描述 | 必填 | 可选值 | 备注 |
|---|---|---|---|---|---|
| types | integer | 组织类型 | 是 | [1,2] | 单选,1:二级组织,如场所,2:三级组织,如区域 |
| site | Array | 场所或区域ID | 是 | 多选,如[23,65,88],当types为1时,此处应为场所ID,为2时应为区域ID | |
| size | string | 查询的时间粒度 | 是 | ["hour", "day", "week", "month", "year"] | 单选,hour:小时,day:天,week:周,month:月,year:年 |
| index | Array | 查询指标 | 是 | ["passBy", "enter", "exits", "turnBack", "duplicatePeople"] | 多选,如["enter", "exits"],可选值列出的是部分值,更多值请参照下面index参数说明 |
| date | string | 日期范围 | 是 | 格式:"2000-01-01 - 2000-12-31";请注意中间的空格,当时间粒度为"hour"时,日期范围不超过7天 |
index参数说明:'passBy':经过人数, 'enter':进入人数, 'exits':离开人数, 'turnBack':折返人数, 'duplicatePeople':重复客流人数, 'deDuplicateEnter':去重后进入人数, 'deDuplicateExit':去重后离开人数, 'surprised':表情惊讶, 'panic':表情害怕, 'disgusted':表情厌恶, 'happy':表情高兴, 'sad':表情难过, 'angry':表情愤怒, 'poker_faced':表情中性, 'face_unknown':表情未知, 'male':男性, 'female':女性, 'gender_unknown':性别未知, 'child':少年, 'kid':儿童, 'teenager':青少年, 'young':青年, 'prime':壮年, 'middle':中年, 'middleAged:中老年', 'old':老年, 'age_unknown':年龄未知, 'hat_not':不戴帽子, 'hat_yes':戴帽子, 'hat_helmet':戴头盔, 'hat_unknown':帽子未知, 'mask_not':不戴口罩, 'mask_yes':戴口罩, 'mask_unknown':口罩未知
PS:如摄像机无该查询指标功能,获取到的数据将是0
请求示例:
{
"types": 1,
"site": [53, 63],
"size": "day",
"index": ["enter", "exits"],
"date": "2023-04-01 - 2023-04-03"
}
返回示例:
{
"code": 1,
"msn": {
"KKmail": [
{
"times": "2022-04-01T00:00:00+08:00",
"enter__sum": 910,
"exits__sum": 854
},
{
"times": "2022-04-02T00:00:00+08:00",
"enter__sum": 1603,
"exits__sum": 1585
},
{
"times": "2022-04-03T00:00:00+08:00",
"enter__sum": 1325,
"exits__sum": 1298
}
],
"万服大厦": [
{
"times": "2022-04-01T00:00:00+08:00",
"enter__sum": 1733,
"exits__sum": 1566
},
{
"times": "2022-04-02T00:00:00+08:00",
"enter__sum": 1875,
"exits__sum": 1823
},
{
"times": "2022-04-03T00:00:00+08:00",
"enter__sum": 1556,
"exits__sum": 1533
}
]
}
}
获取车流量实时数据
请求URL:GET /wanf-api/vehicle-real-data/?date=2024-03-23&site=85&page_size=1000
Header参数:Authorization:"token 28bc3af04f32e53ced4d123405f1afb3c8810418",token值由API接口获取
Query参数
| 参数名 | 类型 | 描述 | 必填 | 可选值 | 备注 |
|---|---|---|---|---|---|
| date | String | 日期,示例值: "2024-03-23" | 是 | ||
| site | String | 二级组织ID,如场所ID | 是 | ||
| page_size | String | 每页数据的条数,默认15条,最大1000条 | 否 | ||
| page | String | 可通过返回数据中的"next"或"previous"跳转上一页/下一页,也可以直接携带此参数跳转至指定页码 | 否 |
返回示例:
{
"count": 4388,
"next": "http://192.168.1.6/wanf-api/vehicle-real-data/?date=2024-03-18&page=593&page_size=2&site=85",
"previous": "http://192.168.1.6/wanf-api/vehicle-real-data/?date=2024-03-18&page=591&page_size=2&site=85",
"results": [
{
"sn": "2102412504WLM1001589",
"uuid": "be766e22-4e5a-b0e9-82ce-3ac834a8aaca",
"target_type": 7,
"lane_no": 2,
"vehicle_type": "微型面包车",
"vehicle_color": "银色",
"vehicle_brand": "五菱",
"vehicle_sub_brand": "五菱宏光",
"vechicle_year_brand": "2010",
"move_direction": "向上",
"plate_char": "贵AH96**",
"plate_color": "蓝底白字",
"plate_type": "单层蓝牌",
"shot_time": "2024-03-18T17:00:16.544000+08:00",
"plate_img": null,
"vehicle_img": null,
"panorama_img": null
},
{
"sn": "2102412504WLM1001589",
"uuid": "be766e22-4e5a-b0e9-82ce-3ac834a8aaca",
"target_type": 7,
"lane_no": 1,
"vehicle_type": "中卡",
"vehicle_color": "白色",
"vehicle_brand": "厢式车",
"vehicle_sub_brand": "厢式车",
"vechicle_year_brand": "未知",
"move_direction": "向上",
"plate_char": "鄂A970**",
"plate_color": "蓝底白字",
"plate_type": "单层蓝牌",
"shot_time": "2024-03-18T17:00:07.904000+08:00",
"plate_img": null,
"vehicle_img": null,
"panorama_img": null
}
]
}
PS:如提供错误的值或没有权限都将返回一个空的列表或错误响应。因该接口数据量较大,每天请求量被限制为100次
获取车流量分类统计数据
请求URL:POST /wanf-api/vehicle-counting-data/
Header参数:Authorization:"token 28bc3af04f32e53ced4d123405f1afb3c8810418",token值由API接口获取
Body参数:支持表单或json格式提交
| 参数名 | 类型 | 描述 | 必填 | 可选值 | 备注 |
|---|---|---|---|---|---|
| site | Array | 场所ID | 是 | [2] | 单值 |
| size | Array | 查询的时间粒度 | 是 | ["hour", "day", "week", "month", "year"] | 单值,hour:小时,day:天,week:周,month:月,year:年 |
| date | Array | 日期范围 | 是 | 格式:"2000-01-01 - 2000-12-31";请注意中间的空格,当时间粒度为"hour"时,日期范围不超过7天 | |
| vehicleType | Array | 过滤条件(车辆类型编号) | 否 | 通过云平台页面获取,菜单路径:首页-配置中心-车辆属性-车辆类型, | 多选,如[1, 2, 3, 4, 5], 车辆类型对应的编号, 非ID。不传该参数将查询所有车型 |
| laneNo | Array | 过滤条件(车道编号) | 否 | [1, 2, 3, 4, 5, 6] | 多选,如[1, 2, 3], 将只查询选择的车道车辆。不传该参数将查询所有车道 |
| moveDirection | Array | 过滤条件(行驶方向) | 否 | [0, 1, 2, 3, 4] | 多选,如[1, 2, 3], 不传该字段参数将查询所有方向。0:未知,1:向左,2:向右,3:向上,4:向下 |
| plateType | Array | 过滤条件(车牌类型编号) | 否 | 通过云平台页面获取,菜单路径:首页-配置中心-车辆属性-车牌类型, | 多选,如[1, 2, 3, 4, 5], 车牌类型对应的编号, 非ID。不传该参数将查询所有车牌类型 |
| annotates | Array | 分类统计条件(查询结果按该条件分类统计) | 否 | ["vehicle_type", "move_direction", "plate_type", "lane_no", "plate_char"] | 单选,如["vehicle_type"],不传该参数将按时间分组。可选值分别对应:[车辆类型,行驶方向,车牌类型,车道,车牌号] |
请求示例:
{
"site": [72],
"size": ["day"],
"date": ["2023-07-06 - 2023-07-06"],
"vehicleType": [2, 9, 11, 30],
"laneNo": [1, 2, 3, 4],
"moveDirection": [0, 1, 2, 3, 4],
"plateType": [0, 1, 2, 3, 4, 5, 6],
"annotates": ["vehicle_type"]
}
返回示例:
{
"code": 1,
"msn": [
{
"times": "2023-07-06T00:00:00+08:00",
"annotates": [
[
11,
18
],
[
30,
14
],
[
2,
1
]
]
}
]
}
PS:返回示例中,annotates字段中的[11, 18]为时间段内的统计结果,11代表分组条件中的对应编号,在上方示例中代表"泥头车-渣土车",18代表该车型的数量
按车牌号分组统计时,日期范围不得超过1天
获取排队定时数据
请求URL:POST /wanf-api/person-queue-timing/
Header参数:Authorization:"token 28bc3af04f32e53ced4d123405f1afb3c8810418",token值由API接口获取
Body参数:支持表单或json格式提交
| 参数名 | 类型 | 描述 | 必填 | 可选值 | 备注 |
|---|---|---|---|---|---|
| site | String/Integer | 场所ID | 是 | ||
| size | String | 查询的时间粒度 | 是 | ["hour", "day", "week", "month", "year"] | 单值,hour:小时,day:天,week:周,month:月,year:年 |
| date | String | 日期范围 | 是 | 格式:"2000-01-01 - 2000-12-31";请注意中间的空格,当时间粒度为"hour"时,日期范围不超过7天 |
请求示例:
{
"site": 88,
"size": "hour",
"date": "2024-04-25 - 2024-04-27"
}
请求成功返回数据结构
| 参数名 | 类型 | 描述 | 必填 | 可选值 | 备注 |
|---|---|---|---|---|---|
| code | Integer | 状态码,请求成功返回1,错误返回2 | 是 | ||
| msn | Object | 返回错误信息或成功数据,如该场所下所有设备的数据统计结果 | 是 | 下级为"设备识别码"对象 | |
| 设备识别码 | Object | 该设备下查询日期范围内的数据统计结果 | 是 | 下级为"时间段数据"数组 | |
| 时间段数据 | Array | 该时间段的数据统计结果 | 是 | 下级为"区域统计数据"数组 | |
| 区域统计数据 | Array | 数据结构:[区域id,该时间段总人数,平均停留时间,[[停留时间等级1, 人数],[停留时间等级2, 人数]]] | 是 | 停留时间等级在摄像机中配置,最多有4个 |
返回示例:
{
"code": 1,
"msn": {
"e8:a0:ed:81:fa:00": {
"2024-04-27T09:00:00+08:00": [
[
1,
0,
0,
[
[
2,
0
],
[
10,
0
],
[
60,
0
],
[
120,
0
]
]
],
[
2,
0,
0,
[
[
2,
0
],
[
10,
0
],
[
60,
0
],
[
120,
0
]
]
]
]
}
}
}
获取排队区域信息
请求URL:GET /wanf-api/person-queue-area/?sn=e8:a0:ed:00:fa:ce&ruleid=1
Header参数:Authorization:"token 28bc3af04f32e53ced4d123405f1afb3c8810418",token值由API接口获取
Query参数
| 参数名 | 类型 | 描述 | 必填 | 可选值 | 备注 |
|---|---|---|---|---|---|
| sn | String | 设备识别码 | 是 | 一般为设备Mac、SN,不同设备类型可能不同 | |
| ruleid | String | 排队区域ID | 否 | 如果不传该参数,将返回查询设备的所有排队区域,否则只返回等于ruleid值的区域 |
返回示例:
[
{
"ruleid": 1,
"name": "数码区",
"organization": 53,
"device": 42
}
]
PS:如提供错误的值或没有权限都将返回一个空的列表或错误响应
重置Token
请求URL:GET /wanf-api/reset-token/
Header参数:Authorization:"token 28bc3af04f32e53ced4d123405f1afb3c8810418",token值由API接口获取
Query参数
| 参数名 | 类型 | 描述 | 必填 | 可选值 | 备注 |
|---|---|---|---|---|---|
| 无 |
返回示例:
{
"code": 1,
"msn": "token重置成功!"
}