客流统计云平台帮助文档
万服客流云平台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"] | 单选,如["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代表该车型的数量
获取排队定时数据
请求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重置成功!" }