# Wvp pro API接口文档 **Repository Path**: fastsafe/wvp ## Basic Information - **Project Name**: Wvp pro API接口文档 - **Description**: 这是wvp的api接口文档 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-03-10 - **Last Updated**: 2025-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WVP-PRO 接口文档 **简介**:WVP-PRO 接口文档 **联系人**:648540858 **Version**:2.0 **接口路径**:/v3/api-docs?group=1. 全部 [TOC] # SSE推送 ## 浏览器推送 **接口地址**:`/api/emit` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |browserId|浏览器ID|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|SseEmitter| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |timeout||integer(int64)|integer(int64)| **响应示例**: ```javascript { "timeout": 0 } ``` # 云台控制 ## 云台控制 **接口地址**:`/api/ptz/control/{deviceId}/{channelId}` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| |command|控制指令,允许值: left, right, up, down, upleft, upright, downleft, downright, zoomin, zoomout, stop|query|false|string|| |horizonSpeed|水平速度|query|false|integer(int32)|| |verticalSpeed|垂直速度|query|false|integer(int32)|| |zoomSpeed|缩放速度|query|false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 通用前端控制命令 **接口地址**:`/api/ptz/front_end_command/{deviceId}/{channelId}` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| |cmdCode|指令码|query|false|integer(int32)|| |combindCode2|组合码二|query|false|integer(int32)|| |parameter1|数据一|query|false|integer(int32)|| |parameter2|数据二|query|false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 预置位查询 **接口地址**:`/api/ptz/preset/query/{deviceId}/{channelId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` # 位置信息管理 ## 查询历史轨迹 **接口地址**:`/api/position/history/{deviceId}/{channelId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| |end|结束时间|query|true|string|| |start|开始时间|query|true|string|| |channelId|channelId|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«List«MobilePosition»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||array|MobilePosition| | altitude||number(double)|| | channelId||string|| | cnLat||string|| | cnLng||string|| | deviceId||string|| | deviceName||string|| | direction||number(double)|| | geodeticSystem||string|| | latitude||number(double)|| | longitude||number(double)|| | reportSource||string|| | speed||number(double)|| | time||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": [ { "altitude": 0, "channelId": "", "cnLat": "", "cnLng": "", "deviceId": "", "deviceName": "", "direction": 0, "geodeticSystem": "", "latitude": 0, "longitude": 0, "reportSource": "", "speed": 0, "time": "" } ], "msg": "" } ``` ## 查询设备最新位置 **接口地址**:`/api/position/latest/{deviceId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|MobilePosition| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |altitude||number(double)|number(double)| |channelId||string|| |cnLat||string|| |cnLng||string|| |deviceId||string|| |deviceName||string|| |direction||number(double)|number(double)| |geodeticSystem||string|| |latitude||number(double)|number(double)| |longitude||number(double)|number(double)| |reportSource||string|| |speed||number(double)|number(double)| |time||string|| **响应示例**: ```javascript { "altitude": 0, "channelId": "", "cnLat": "", "cnLng": "", "deviceId": "", "deviceName": "", "direction": 0, "geodeticSystem": "", "latitude": 0, "longitude": 0, "reportSource": "", "speed": 0, "time": "" } ``` ## 获取移动位置信息 **接口地址**:`/api/position/realtime/{deviceId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«MobilePosition»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 订阅位置信息 **接口地址**:`/api/position/subscribe/{deviceId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| |expires|订阅超时时间|query|true|string|| |interval|上报时间间隔|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` # 国标录像 ## 获取历史媒体下载进度 **接口地址**:`/api/gb_record/download/progress/{deviceId}/{channelId}/{stream}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| |stream|流ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|StreamInfo| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |app||string|| |channelId||string|| |deviceID||string|| |endTime||string|| |flv||string|| |fmp4||string|| |hls||string|| |https_flv||string|| |https_fmp4||string|| |https_hls||string|| |https_ts||string|| |mediaServerId||string|| |progress||number(double)|number(double)| |rtc||string|| |rtmp||string|| |rtmps||string|| |rtsp||string|| |rtsps||string|| |startTime||string|| |stream||string|| |tracks||object|| |transactionInfo||TransactionInfo|TransactionInfo| | branch||string|| | callId||string|| | localTag||string|| | remoteTag||string|| |ts||string|| |ws_flv||string|| |ws_fmp4||string|| |ws_hls||string|| |ws_ts||string|| |wss_flv||string|| |wss_fmp4||string|| |wss_hls||string|| |wss_ts||string|| **响应示例**: ```javascript { "app": "", "channelId": "", "deviceID": "", "endTime": "", "flv": "", "fmp4": "", "hls": "", "https_flv": "", "https_fmp4": "", "https_hls": "", "https_ts": "", "mediaServerId": "", "progress": 0, "rtc": "", "rtmp": "", "rtmps": "", "rtsp": "", "rtsps": "", "startTime": "", "stream": "", "tracks": {}, "transactionInfo": { "branch": "", "callId": "", "localTag": "", "remoteTag": "" }, "ts": "", "ws_flv": "", "ws_fmp4": "", "ws_hls": "", "ws_ts": "", "wss_flv": "", "wss_fmp4": "", "wss_hls": "", "wss_ts": "" } ``` ## 开始历史媒体下载 **接口地址**:`/api/gb_record/download/start/{deviceId}/{channelId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| |downloadSpeed|下载倍速|query|false|string|| |endTime|结束时间|query|false|string|| |startTime|开始时间|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 停止历史媒体下载 **接口地址**:`/api/gb_record/download/stop/{deviceId}/{channelId}/{stream}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| |stream|流ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 录像查询 **接口地址**:`/api/gb_record/query/{deviceId}/{channelId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| |endTime|结束时间|query|false|string|| |startTime|开始时间|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«RecordInfo»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` # 国标设备控制 ## 拉框放大 **接口地址**:`/api/device/control/drag_zoom/zoom_in` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|query|true|string|| |length|播放窗口长度像素值|query|true|integer(int32)|| |lengthx|拉框长度像素值|query|true|integer(int32)|| |lengthy|拉框宽度像素值|query|true|integer(int32)|| |midpointx|拉框中心的横轴坐标像素值|query|true|integer(int32)|| |midpointy|拉框中心的纵轴坐标像素值|query|true|integer(int32)|| |width|播放窗口宽度像素值|query|true|integer(int32)|| |channelId|通道ID|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 拉框缩小 **接口地址**:`/api/device/control/drag_zoom/zoom_out` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|query|true|string|| |length|播放窗口长度像素值|query|true|integer(int32)|| |lengthx|拉框长度像素值|query|true|integer(int32)|| |lengthy|拉框宽度像素值|query|true|integer(int32)|| |midpointx|拉框中心的横轴坐标像素值|query|true|integer(int32)|| |midpointy|拉框中心的纵轴坐标像素值|query|true|integer(int32)|| |width|播放窗口宽度像素值|query|true|integer(int32)|| |channelId|通道ID|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 布防-撤防命令 **接口地址**:`/api/device/control/guard/{deviceId}/{guardCmdStr}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| |guardCmdStr|命令, 可选值:SetGuard(布防),ResetGuard(撤防)|path|true|string|| |channelId|通道编码|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 看守位控制 **接口地址**:`/api/device/control/home_position/{deviceId}/{enabled}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| |enabled|是否开启看守位 1:开启,0:关闭|path|true|string|| |channelId|通道编码|query|false|string|| |presetIndex|调用预置位编号|query|false|string|| |resetTime|自动归位时间间隔|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 强制关键帧 **接口地址**:`/api/device/control/i_frame/{deviceId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|query|true|string|| |deviceId|设备ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 录像控制命令 **接口地址**:`/api/device/control/record/{deviceId}/{recordCmdStr}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| |recordCmdStr|命令, 可选值:Record(手动录像),StopRecord(停止手动录像)|path|true|string|| |channelId|通道编码|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 报警复位 **接口地址**:`/api/device/control/reset_alarm/{deviceId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| |alarmMethod|报警方式|query|false|string|| |alarmType|报警类型|query|false|string|| |channelId|通道编码|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 远程启动控制命令 **接口地址**:`/api/device/control/teleboot/{deviceId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` # 国标设备查询 ## 设备报警查询 **接口地址**:`/api/device/query/alarm/{deviceId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备id|path|true|string|| |alarmMethod|报警方式条件|query|false|string|| |alarmType|报警类型|query|false|string|| |endPriority|报警终止级别|query|false|string|| |endTime|报警发生终止时间|query|false|string|| |startPriority|报警起始级别|query|false|string|| |startTime|报警发生起始时间|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 更新通道信息 **接口地址**:`/api/device/query/channel/update/{deviceId}` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channel|通道||true|string|| |deviceId|设备id|query|true|string|| |PTZType||query|false|integer(int32)|| |PTZTypeText||query|false|string|| |address||query|false|string|| |block||query|false|string|| |certNum||query|false|string|| |certifiable||query|false|integer(int32)|| |channelId||query|false|string|| |channelType||query|false|integer(int32)|| |civilCode||query|false|string|| |createTime||query|false|string|| |endTime||query|false|string|| |errCode||query|false|integer(int32)|| |hasAudio||query|false|boolean|| |id||query|false|integer(int32)|| |ipAddress||query|false|string|| |latitude||query|false|number(double)|| |longitude||query|false|number(double)|| |manufacture||query|false|string|| |model||query|false|string|| |name||query|false|string|| |owner||query|false|string|| |parentId||query|false|string|| |parental||query|false|integer(int32)|| |password||query|false|string|| |port||query|false|integer(int32)|| |registerWay||query|false|integer(int32)|| |safetyWay||query|false|integer(int32)|| |secrecy||query|false|string|| |status||query|false|integer(int32)|| |streamId||query|false|string|| |subCount||query|false|integer(int32)|| |updateTime||query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 更新设备信息 **接口地址**:`/api/device/query/device/update/` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |device|设备信息||true||| |channelCount||query|false|integer(int32)|| |charset||query|false|string|| |createTime||query|false|string|| |deviceId||query|false|string|| |expires||query|false|integer(int32)|| |firmware||query|false|string|| |firsRegister||query|false|boolean|| |hostAddress||query|false|string|| |ip||query|false|string|| |keepaliveTime||query|false|string|| |manufacturer||query|false|string|| |mediaServerId||query|false|string|| |mobilePositionSubmissionInterval||query|false|integer(int32)|| |model||query|false|string|| |name||query|false|string|| |online||query|false|integer(int32)|| |port||query|false|integer(int32)|| |registerTime||query|false|string|| |ssrcCheck||query|false|boolean|| |streamMode||query|false|string|| |subscribeCycleForAlarm||query|false|integer(int32)|| |subscribeCycleForCatalog||query|false|integer(int32)|| |subscribeCycleForMobilePosition||query|false|integer(int32)|| |transport||query|false|string|| |updateTime||query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` ## 分页查询国标设备 **接口地址**:`/api/device/query/devices` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |count|每页查询数量|query|true|integer(int32)|| |page|当前页|query|true|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo«Device»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|Device| | channelCount||integer(int32)|| | charset||string|| | createTime||string|| | deviceId||string|| | expires||integer(int32)|| | firmware||string|| | firsRegister||boolean|| | hostAddress||string|| | ip||string|| | keepaliveTime||string|| | manufacturer||string|| | mediaServerId||string|| | mobilePositionSubmissionInterval||integer(int32)|| | model||string|| | name||string|| | online||integer(int32)|| | port||integer(int32)|| | registerTime||string|| | ssrcCheck||boolean|| | streamMode||string|| | subscribeCycleForAlarm||integer(int32)|| | subscribeCycleForCatalog||integer(int32)|| | subscribeCycleForMobilePosition||integer(int32)|| | transport||string|| | updateTime||string|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [ { "channelCount": 0, "charset": "", "createTime": "", "deviceId": "", "expires": 0, "firmware": "", "firsRegister": true, "hostAddress": "", "ip": "", "keepaliveTime": "", "manufacturer": "", "mediaServerId": "", "mobilePositionSubmissionInterval": 0, "model": "", "name": "", "online": 0, "port": 0, "registerTime": "", "ssrcCheck": true, "streamMode": "", "subscribeCycleForAlarm": 0, "subscribeCycleForCatalog": 0, "subscribeCycleForMobilePosition": 0, "transport": "", "updateTime": "" } ], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 使用ID查询国标设备 **接口地址**:`/api/device/query/devices/{deviceId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|Device| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |channelCount||integer(int32)|integer(int32)| |charset||string|| |createTime||string|| |deviceId||string|| |expires||integer(int32)|integer(int32)| |firmware||string|| |firsRegister||boolean|| |hostAddress||string|| |ip||string|| |keepaliveTime||string|| |manufacturer||string|| |mediaServerId||string|| |mobilePositionSubmissionInterval||integer(int32)|integer(int32)| |model||string|| |name||string|| |online||integer(int32)|integer(int32)| |port||integer(int32)|integer(int32)| |registerTime||string|| |ssrcCheck||boolean|| |streamMode||string|| |subscribeCycleForAlarm||integer(int32)|integer(int32)| |subscribeCycleForCatalog||integer(int32)|integer(int32)| |subscribeCycleForMobilePosition||integer(int32)|integer(int32)| |transport||string|| |updateTime||string|| **响应示例**: ```javascript { "channelCount": 0, "charset": "", "createTime": "", "deviceId": "", "expires": 0, "firmware": "", "firsRegister": true, "hostAddress": "", "ip": "", "keepaliveTime": "", "manufacturer": "", "mediaServerId": "", "mobilePositionSubmissionInterval": 0, "model": "", "name": "", "online": 0, "port": 0, "registerTime": "", "ssrcCheck": true, "streamMode": "", "subscribeCycleForAlarm": 0, "subscribeCycleForCatalog": 0, "subscribeCycleForMobilePosition": 0, "transport": "", "updateTime": "" } ``` ## 分页查询通道 **接口地址**:`/api/device/query/devices/{deviceId}/channels` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |count|每页查询数量|query|true|integer(int32)|| |deviceId|设备id|path|true|string|| |page|当前页|query|true|integer(int32)|| |channelType|设备/子目录-> false/true|query|false|boolean|| |online|是否在线|query|false|boolean|| |query|查询内容|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 移除设备 **接口地址**:`/api/device/query/devices/{deviceId}/delete` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备id|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 设备状态查询 **接口地址**:`/api/device/query/devices/{deviceId}/status` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备id|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 同步设备通道 **接口地址**:`/api/device/query/devices/{deviceId}/sync` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备id|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«SyncStatus»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||SyncStatus|SyncStatus| | current||integer(int32)|| | errorMsg||string|| | total||integer(int32)|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": { "current": 0, "errorMsg": "", "total": 0 }, "msg": "" } ``` ## 分页查询子目录通道 **接口地址**:`/api/device/query/sub_channels/{deviceId}/{channelId}/channels` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道id|path|true|string|| |count|每页条数|query|true|integer(int32)|| |deviceId|设备id|path|true|string|| |page|当前页|query|true|integer(int32)|| |channelType|通道类型, 子目录|query|false|boolean|| |online|是否在线|query|false|boolean|| |query|查询内容|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 修改数据流传输模式 **接口地址**:`/api/device/query/transport/{deviceId}/{streamMode}` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备id|path|true|string|| |streamMode|数据流传输模式, 取值:UDP(udp传输),TCP-ACTIVE(tcp主动模式,暂不支持),TCP-PASSIVE(tcp被动模式)|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 获取设备的订阅状态 **接口地址**:`/api/device/query/{deviceId}/subscribe_info` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**:
获取设备的订阅状态
**请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|deviceId|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«Map«string,string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||object|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": {}, "msg": "" } ``` ## 获取通道同步进度 **接口地址**:`/api/device/query/{deviceId}/sync_status` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**:获取通道同步进度
**请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|deviceId|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«SyncStatus»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||SyncStatus|SyncStatus| | current||integer(int32)|| | errorMsg||string|| | total||integer(int32)|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": { "current": 0, "errorMsg": "", "total": 0 }, "msg": "" } ``` # 国标设备点播 ## 语音广播命令 **接口地址**:`/api/play/broadcast/{deviceId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备Id|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 将不是h264的视频通过ffmpeg 转码为h264 + aac **接口地址**:`/api/play/convert/{streamId}` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |streamId|视频流ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 结束转码 **接口地址**:`/api/play/convertStop/{key}` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |key|视频流key|path|true|string|| |mediaServerId|mediaServerId|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 获取所有的ssrc **接口地址**:`/api/play/ssrc` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: 暂无 **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«JSONObject»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||object|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": {}, "msg": "" } ``` ## 开始点播 **接口地址**:`/api/play/start/{deviceId}/{channelId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 停止点播 **接口地址**:`/api/play/stop/{deviceId}/{channelId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` # 国标设备配置 ## 基本配置设置命令 **接口地址**:`/api/device/config/basicParam/{deviceId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|设备ID|path|true|string|| |channelId|通道ID|query|false|string|| |expiration|到期时间|query|false|string|| |heartBeatCount|心跳计数|query|false|string|| |heartBeatInterval|心跳间隔|query|false|string|| |name|名称|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 设备配置查询请求 **接口地址**:`/api/device/config/query/{deviceId}/{configType}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |configType|配置类型|path|true|string|| |deviceId|设备ID|path|true|string|| |channelId|通道ID|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` # 媒体流相关 ## 根据应用名和流id获取播放地址 **接口地址**:`/api/media/stream_info_by_app_and_stream` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |app|应用名|query|true|string|| |stream|流id|query|true|string|| |mediaServerId|媒体服务器id|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«StreamInfo»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||StreamInfo|StreamInfo| | app||string|| | channelId||string|| | deviceID||string|| | endTime||string|| | flv||string|| | fmp4||string|| | hls||string|| | https_flv||string|| | https_fmp4||string|| | https_hls||string|| | https_ts||string|| | mediaServerId||string|| | progress||number(double)|| | rtc||string|| | rtmp||string|| | rtmps||string|| | rtsp||string|| | rtsps||string|| | startTime||string|| | stream||string|| | tracks||object|| | transactionInfo||TransactionInfo|TransactionInfo| | branch||string|| | callId||string|| | localTag||string|| | remoteTag||string|| | ts||string|| | ws_flv||string|| | ws_fmp4||string|| | ws_hls||string|| | ws_ts||string|| | wss_flv||string|| | wss_fmp4||string|| | wss_hls||string|| | wss_ts||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": { "app": "", "channelId": "", "deviceID": "", "endTime": "", "flv": "", "fmp4": "", "hls": "", "https_flv": "", "https_fmp4": "", "https_hls": "", "https_ts": "", "mediaServerId": "", "progress": 0, "rtc": "", "rtmp": "", "rtmps": "", "rtsp": "", "rtsps": "", "startTime": "", "stream": "", "tracks": {}, "transactionInfo": { "branch": "", "callId": "", "localTag": "", "remoteTag": "" }, "ts": "", "ws_flv": "", "ws_fmp4": "", "ws_hls": "", "ws_ts": "", "wss_flv": "", "wss_fmp4": "", "wss_hls": "", "wss_ts": "" }, "msg": "" } ``` # 报警信息管理 ## 分页查询报警 **接口地址**:`/api/alarm/all` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |count|每页查询数量|query|true|integer(int32)|| |page|当前页|query|true|integer(int32)|| |alarmMethod|查询内容|query|false|string|| |alarmPriority|查询内容|query|false|string|| |alarmType|查询内容|query|false|string|| |deviceId|设备id|query|false|string|| |endTime|查询内容|query|false|string|| |startTime|查询内容|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo«DeviceAlarm»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|DeviceAlarm| | alarmDescription||string|| | alarmMethod||string|| | alarmPriority||string|| | alarmTime||string|| | alarmType||string|| | channelId||string|| | deviceId||string|| | id||string|| | latitude||number(double)|| | longitude||number(double)|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [ { "alarmDescription": "", "alarmMethod": "", "alarmPriority": "", "alarmTime": "", "alarmType": "", "channelId": "", "deviceId": "", "id": "", "latitude": 0, "longitude": 0 } ], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 删除报警 **接口地址**:`/api/alarm/delete` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceIds|多个设备id,逗号分隔|query|false|string|| |id|ID|query|false|integer(int32)|| |time|结束时间|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` ## 测试向上级-设备发送模拟报警通知 **接口地址**:`/api/alarm/test/notify/alarm` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |deviceId|deviceId|query|true|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` # 拉流代理 ## 移除代理 **接口地址**:`/api/proxy/del` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |app|应用名|query|true|string|| |stream|流ID|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||object|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": {}, "msg": "" } ``` ## 获取ffmpeg.cmd模板 **接口地址**:`/api/proxy/ffmpeg_cmd/list` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |mediaServerId|流媒体ID|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||object|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": {}, "msg": "" } ``` ## 分页查询流代理 **接口地址**:`/api/proxy/list` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |count|每页查询数量|query|true|integer(int32)|| |page|当前页|query|true|integer(int32)|| |online|是否在线|query|false|boolean|| |query|查询内容|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo«StreamProxyItem»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|StreamProxyItem| | app||string|| | catalogId||string|| | createStamp||integer(int64)|| | createTime||string|| | dst_url||string|| | enable||boolean|| | enable_hls||boolean|| | enable_mp4||boolean|| | enable_remove_none_reader||boolean|| | ffmpeg_cmd_key||string|| | gbId||string|| | gbStreamId||integer(int32)|| | latitude||number(double)|| | longitude||number(double)|| | mediaServerId||string|| | name||string|| | platformGbId||string|| | platformId||string|| | rtp_type||string|| | src_url||string|| | status||boolean|| | stream||string|| | streamType||string|| | timeout_ms||integer(int32)|| | type||string|| | url||string|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [ { "app": "", "catalogId": "", "createStamp": 0, "createTime": "", "dst_url": "", "enable": true, "enable_hls": true, "enable_mp4": true, "enable_remove_none_reader": true, "ffmpeg_cmd_key": "", "gbId": "", "gbStreamId": 0, "latitude": 0, "longitude": 0, "mediaServerId": "", "name": "", "platformGbId": "", "platformId": "", "rtp_type": "", "src_url": "", "status": true, "stream": "", "streamType": "", "timeout_ms": 0, "type": "", "url": "" } ], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 保存代理 **接口地址**:`/api/proxy/save` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "app": "", "catalogId": "", "createStamp": 0, "createTime": "", "dst_url": "", "enable": true, "enable_hls": true, "enable_mp4": true, "enable_remove_none_reader": true, "ffmpeg_cmd_key": "", "gbId": "", "gbStreamId": 0, "latitude": 0, "longitude": 0, "mediaServerId": "", "name": "", "platformGbId": "", "platformId": "", "rtp_type": "", "src_url": "", "status": true, "stream": "", "streamType": "", "timeout_ms": 0, "type": "", "url": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |streamProxyItem|StreamProxyItem|body|true|StreamProxyItem|StreamProxyItem| | app|||false|string|| | catalogId|||false|string|| | createStamp|||false|integer(int64)|| | createTime|||false|string|| | dst_url|||false|string|| | enable|||false|boolean|| | enable_hls|||false|boolean|| | enable_mp4|||false|boolean|| | enable_remove_none_reader|||false|boolean|| | ffmpeg_cmd_key|||false|string|| | gbId|||false|string|| | gbStreamId|||false|integer(int32)|| | latitude|||false|number(double)|| | longitude|||false|number(double)|| | mediaServerId|||false|string|| | name|||false|string|| | platformGbId|||false|string|| | platformId|||false|string|| | rtp_type|||false|string|| | src_url|||false|string|| | status|||false|boolean|| | stream|||false|string|| | streamType|||false|string|| | timeout_ms|||false|integer(int32)|| | type|||false|string|| | url|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||object|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": {}, "msg": "" } ``` ## 启用代理 **接口地址**:`/api/proxy/start` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |app|应用名|query|false|string|| |stream|流ID|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 停用代理 **接口地址**:`/api/proxy/stop` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |app|应用名|query|false|string|| |stream|流ID|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` # 推流信息管理 ## 中止多个推流 **接口地址**:`/api/push/batchStop` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "gbStreams": [ { "app": "", "catalogId": "", "createStamp": 0, "gbId": "", "gbStreamId": 0, "latitude": 0, "longitude": 0, "mediaServerId": "", "name": "", "platformId": "", "status": true, "stream": "", "streamType": "" } ] } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |app|应用名||true|string|| |streamId|流ID||true|string|| |batchGBStreamParam|BatchGBStreamParam|body|true|BatchGBStreamParam|BatchGBStreamParam| | gbStreams|||false|array|GbStream| | app|||false|string|| | catalogId|||false|string|| | createStamp|||false|integer|| | gbId|||false|string|| | gbStreamId|||false|integer|| | latitude|||false|number|| | longitude|||false|number|| | mediaServerId|||false|string|| | name|||false|string|| | platformId|||false|string|| | status|||false|boolean|| | stream|||false|string|| | streamType|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 推流列表查询 **接口地址**:`/api/push/list` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |count|每页查询数量|query|true|integer(int32)|| |page|当前页|query|true|integer(int32)|| |mediaServerId|流媒体ID|query|false|string|| |pushing|是否正在推流|query|false|boolean|| |query|查询内容|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo«StreamPushItem»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|StreamPushItem| | aliveSecond||integer(int64)|| | app||string|| | catalogId||string|| | createStamp||integer(int64)|| | gbId||string|| | gbStreamId||integer(int32)|| | id||integer(int32)|| | latitude||number(double)|| | longitude||number(double)|| | mediaServerId||string|| | name||string|| | originSock||OriginSock|OriginSock| | identifier||string|| | local_ip||string|| | local_port||integer|| | peer_ip||string|| | peer_port||integer|| | originType||integer(int32)|| | originTypeStr||string|| | originUrl||string|| | platformId||string|| | schemas||array|MediaSchema| | bytesSpeed||integer|| | schema||string|| | status||boolean|| | stream||string|| | streamType||string|| | totalReaderCount||string|| | tracks||array|MediaTrack| | channels||integer|| | codecId||integer|| | codecIdName||string|| | codecType||integer|| | fps||integer|| | height||integer|| | ready||boolean|| | sampleBit||integer|| | sampleRate||integer|| | width||integer|| | vhost||string|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [ { "aliveSecond": 0, "app": "", "catalogId": "", "createStamp": 0, "gbId": "", "gbStreamId": 0, "id": 0, "latitude": 0, "longitude": 0, "mediaServerId": "", "name": "", "originSock": { "identifier": "", "local_ip": "", "local_port": 0, "peer_ip": "", "peer_port": 0 }, "originType": 0, "originTypeStr": "", "originUrl": "", "platformId": "", "schemas": [ { "bytesSpeed": 0, "schema": "" } ], "status": true, "stream": "", "streamType": "", "totalReaderCount": "", "tracks": [ { "channels": 0, "codecId": 0, "codecIdName": "", "codecType": 0, "fps": 0, "height": 0, "ready": true, "sampleBit": 0, "sampleRate": 0, "width": 0 } ], "vhost": "" } ], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 将推流移出到国标 **接口地址**:`/api/push/remove_form_gb` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "app": "", "catalogId": "", "createStamp": 0, "gbId": "", "gbStreamId": 0, "latitude": 0, "longitude": 0, "mediaServerId": "", "name": "", "platformId": "", "status": true, "stream": "", "streamType": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |gbStream|GbStream|body|true|GbStream|GbStream| | app|||false|string|| | catalogId|||false|string|| | createStamp|||false|integer(int64)|| | gbId|||false|string|| | gbStreamId|||false|integer(int32)|| | latitude|||false|number(double)|| | longitude|||false|number(double)|| | mediaServerId|||false|string|| | name|||false|string|| | platformId|||false|string|| | status|||false|boolean|| | stream|||false|string|| | streamType|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 将推流添加到国标 **接口地址**:`/api/push/save_to_gb` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "app": "", "catalogId": "", "createStamp": 0, "gbId": "", "gbStreamId": 0, "latitude": 0, "longitude": 0, "mediaServerId": "", "name": "", "platformId": "", "status": true, "stream": "", "streamType": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |gbStream|GbStream|body|true|GbStream|GbStream| | app|||false|string|| | catalogId|||false|string|| | createStamp|||false|integer(int64)|| | gbId|||false|string|| | gbStreamId|||false|integer(int32)|| | latitude|||false|number(double)|| | longitude|||false|number(double)|| | mediaServerId|||false|string|| | name|||false|string|| | platformId|||false|string|| | status|||false|boolean|| | stream|||false|string|| | streamType|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 中止一个推流 **接口地址**:`/api/push/stop` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |app|应用名|query|true|string|| |streamId|流ID|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## uploadChannelFile **接口地址**:`/api/push/upload` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json,application/octet-stream` **响应数据类型**:`*/*` **接口描述**: **请求参数**: 暂无 **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«WVPResult«object»»»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` # 日志管理 ## 分页查询报警 **接口地址**:`/api/log/all` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |count|每页查询数量|query|true|integer(int32)|| |page|当前页|query|true|integer(int32)|| |endTime|查询内容|query|false|string|| |query|查询内容|query|false|string|| |startTime|查询内容|query|false|string|| |type|类型|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo«LogDto»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|LogDto| | address||string|| | createTime||string|| | id||integer(int32)|| | name||string|| | result||string|| | timing||integer(int64)|| | type||string|| | uri||string|| | username||string|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [ { "address": "", "createTime": "", "id": 0, "name": "", "result": "", "timing": 0, "type": "", "uri": "", "username": "" } ], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 清空日志 **接口地址**:`/api/log/clear` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: 暂无 **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` # 服务控制 ## 配置信息 **接口地址**:`/api/server/config` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |type|配置类型(sip, base)|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«JSONObject»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||object|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": {}, "msg": "" } ``` ## 测试流媒体服务 **接口地址**:`/api/server/media_server/check` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |ip|流媒体服务IP|query|true|string|| |port|流媒体服务HTT端口|query|true|integer(int32)|| |secret|流媒体服务secret|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«MediaServerItem»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||MediaServerItemRes|MediaServerItemRes| | autoConfig||boolean|| | createTime||string|| | currentPort||integer(int32)|| | defaultServer||boolean|| | hookAliveInterval||integer(int32)|| | hookIp||string|| | httpPort||integer(int32)|| | httpSSlPort||integer(int32)|| | id||string|| | ip||string|| | lastKeepaliveTime||string|| | mediaServerSsrcMap||SsrcConfigRes|SsrcConfigRes| | isUsed||array|string| | mediaServerId||string|| | notUsed||array|string| | playBackSsrc||string|| | playSsrc||string|| | ssrcPrefix||string|| | recordAssistPort||integer(int32)|| | rtmpPort||integer(int32)|| | rtmpSSlPort||integer(int32)|| | rtpEnable||boolean|| | rtpPortRange||string|| | rtpProxyPort||integer(int32)|| | rtspPort||integer(int32)|| | rtspSSLPort||integer(int32)|| | sdpIp||string|| | secret||string|| | sendRtpPortRange||string|| | ssrcConfig||SsrcConfigRes|SsrcConfigRes| | isUsed||array|string| | mediaServerId||string|| | notUsed||array|string| | playBackSsrc||string|| | playSsrc||string|| | ssrcPrefix||string|| | status||boolean|| | streamIp||string|| | streamNoneReaderDelayMS||integer(int32)|| | updateTime||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": { "autoConfig": true, "createTime": "", "currentPort": 0, "defaultServer": true, "hookAliveInterval": 0, "hookIp": "", "httpPort": 0, "httpSSlPort": 0, "id": "", "ip": "", "lastKeepaliveTime": "", "mediaServerSsrcMap": { "additionalProperties1": { "isUsed": [], "mediaServerId": "", "notUsed": [], "playBackSsrc": "", "playSsrc": "", "ssrcPrefix": "" } }, "recordAssistPort": 0, "rtmpPort": 0, "rtmpSSlPort": 0, "rtpEnable": true, "rtpPortRange": "", "rtpProxyPort": 0, "rtspPort": 0, "rtspSSLPort": 0, "sdpIp": "", "secret": "", "sendRtpPortRange": "", "ssrcConfig": {}, "status": true, "streamIp": "", "streamNoneReaderDelayMS": 0, "updateTime": "" }, "msg": "" } ``` ## 移除流媒体服务 **接口地址**:`/api/server/media_server/delete` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |id|流媒体ID|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` ## 流媒体服务列表 **接口地址**:`/api/server/media_server/list` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |detail|detail|query|false|boolean|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«List«MediaServerItem»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||array|MediaServerItemRes| | autoConfig||boolean|| | createTime||string|| | currentPort||integer(int32)|| | defaultServer||boolean|| | hookAliveInterval||integer(int32)|| | hookIp||string|| | httpPort||integer(int32)|| | httpSSlPort||integer(int32)|| | id||string|| | ip||string|| | lastKeepaliveTime||string|| | mediaServerSsrcMap||SsrcConfigRes|SsrcConfigRes| | isUsed||array|string| | mediaServerId||string|| | notUsed||array|string| | playBackSsrc||string|| | playSsrc||string|| | ssrcPrefix||string|| | recordAssistPort||integer(int32)|| | rtmpPort||integer(int32)|| | rtmpSSlPort||integer(int32)|| | rtpEnable||boolean|| | rtpPortRange||string|| | rtpProxyPort||integer(int32)|| | rtspPort||integer(int32)|| | rtspSSLPort||integer(int32)|| | sdpIp||string|| | secret||string|| | sendRtpPortRange||string|| | ssrcConfig||SsrcConfigRes|SsrcConfigRes| | isUsed||array|string| | mediaServerId||string|| | notUsed||array|string| | playBackSsrc||string|| | playSsrc||string|| | ssrcPrefix||string|| | status||boolean|| | streamIp||string|| | streamNoneReaderDelayMS||integer(int32)|| | updateTime||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": [ { "autoConfig": true, "createTime": "", "currentPort": 0, "defaultServer": true, "hookAliveInterval": 0, "hookIp": "", "httpPort": 0, "httpSSlPort": 0, "id": "", "ip": "", "lastKeepaliveTime": "", "mediaServerSsrcMap": { "additionalProperties1": { "isUsed": [], "mediaServerId": "", "notUsed": [], "playBackSsrc": "", "playSsrc": "", "ssrcPrefix": "" } }, "recordAssistPort": 0, "rtmpPort": 0, "rtmpSSlPort": 0, "rtpEnable": true, "rtpPortRange": "", "rtpProxyPort": 0, "rtspPort": 0, "rtspSSLPort": 0, "sdpIp": "", "secret": "", "sendRtpPortRange": "", "ssrcConfig": {}, "status": true, "streamIp": "", "streamNoneReaderDelayMS": 0, "updateTime": "" } ], "msg": "" } ``` ## 获取流媒体服务 **接口地址**:`/api/server/media_server/one/{id}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |id|id|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«MediaServerItem»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||MediaServerItemRes|MediaServerItemRes| | autoConfig||boolean|| | createTime||string|| | currentPort||integer(int32)|| | defaultServer||boolean|| | hookAliveInterval||integer(int32)|| | hookIp||string|| | httpPort||integer(int32)|| | httpSSlPort||integer(int32)|| | id||string|| | ip||string|| | lastKeepaliveTime||string|| | mediaServerSsrcMap||SsrcConfigRes|SsrcConfigRes| | isUsed||array|string| | mediaServerId||string|| | notUsed||array|string| | playBackSsrc||string|| | playSsrc||string|| | ssrcPrefix||string|| | recordAssistPort||integer(int32)|| | rtmpPort||integer(int32)|| | rtmpSSlPort||integer(int32)|| | rtpEnable||boolean|| | rtpPortRange||string|| | rtpProxyPort||integer(int32)|| | rtspPort||integer(int32)|| | rtspSSLPort||integer(int32)|| | sdpIp||string|| | secret||string|| | sendRtpPortRange||string|| | ssrcConfig||SsrcConfigRes|SsrcConfigRes| | isUsed||array|string| | mediaServerId||string|| | notUsed||array|string| | playBackSsrc||string|| | playSsrc||string|| | ssrcPrefix||string|| | status||boolean|| | streamIp||string|| | streamNoneReaderDelayMS||integer(int32)|| | updateTime||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": { "autoConfig": true, "createTime": "", "currentPort": 0, "defaultServer": true, "hookAliveInterval": 0, "hookIp": "", "httpPort": 0, "httpSSlPort": 0, "id": "", "ip": "", "lastKeepaliveTime": "", "mediaServerSsrcMap": { "additionalProperties1": { "isUsed": [], "mediaServerId": "", "notUsed": [], "playBackSsrc": "", "playSsrc": "", "ssrcPrefix": "" } }, "recordAssistPort": 0, "rtmpPort": 0, "rtmpSSlPort": 0, "rtpEnable": true, "rtpPortRange": "", "rtpProxyPort": 0, "rtspPort": 0, "rtspSSLPort": 0, "sdpIp": "", "secret": "", "sendRtpPortRange": "", "ssrcConfig": {}, "status": true, "streamIp": "", "streamNoneReaderDelayMS": 0, "updateTime": "" }, "msg": "" } ``` ## 在线流媒体服务列表 **接口地址**:`/api/server/media_server/online/list` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: 暂无 **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«List«MediaServerItem»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||array|MediaServerItemRes| | autoConfig||boolean|| | createTime||string|| | currentPort||integer(int32)|| | defaultServer||boolean|| | hookAliveInterval||integer(int32)|| | hookIp||string|| | httpPort||integer(int32)|| | httpSSlPort||integer(int32)|| | id||string|| | ip||string|| | lastKeepaliveTime||string|| | mediaServerSsrcMap||SsrcConfigRes|SsrcConfigRes| | isUsed||array|string| | mediaServerId||string|| | notUsed||array|string| | playBackSsrc||string|| | playSsrc||string|| | ssrcPrefix||string|| | recordAssistPort||integer(int32)|| | rtmpPort||integer(int32)|| | rtmpSSlPort||integer(int32)|| | rtpEnable||boolean|| | rtpPortRange||string|| | rtpProxyPort||integer(int32)|| | rtspPort||integer(int32)|| | rtspSSLPort||integer(int32)|| | sdpIp||string|| | secret||string|| | sendRtpPortRange||string|| | ssrcConfig||SsrcConfigRes|SsrcConfigRes| | isUsed||array|string| | mediaServerId||string|| | notUsed||array|string| | playBackSsrc||string|| | playSsrc||string|| | ssrcPrefix||string|| | status||boolean|| | streamIp||string|| | streamNoneReaderDelayMS||integer(int32)|| | updateTime||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": [ { "autoConfig": true, "createTime": "", "currentPort": 0, "defaultServer": true, "hookAliveInterval": 0, "hookIp": "", "httpPort": 0, "httpSSlPort": 0, "id": "", "ip": "", "lastKeepaliveTime": "", "mediaServerSsrcMap": { "additionalProperties1": { "isUsed": [], "mediaServerId": "", "notUsed": [], "playBackSsrc": "", "playSsrc": "", "ssrcPrefix": "" } }, "recordAssistPort": 0, "rtmpPort": 0, "rtmpSSlPort": 0, "rtpEnable": true, "rtpPortRange": "", "rtpProxyPort": 0, "rtspPort": 0, "rtspSSLPort": 0, "sdpIp": "", "secret": "", "sendRtpPortRange": "", "ssrcConfig": {}, "status": true, "streamIp": "", "streamNoneReaderDelayMS": 0, "updateTime": "" } ], "msg": "" } ``` ## 测试流媒体录像管理服务 **接口地址**:`/api/server/media_server/record/check` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |ip|流媒体服务IP|query|true|string|| |port|流媒体服务HTT端口|query|true|integer(int32)|| |secret|流媒体服务secret||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` ## 保存流媒体服务 **接口地址**:`/api/server/media_server/save` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "autoConfig": true, "createTime": "", "currentPort": 0, "defaultServer": true, "hookAliveInterval": 0, "hookIp": "", "httpPort": 0, "httpSSlPort": 0, "id": "", "ip": "", "lastKeepaliveTime": "", "mediaServerSsrcMap": { "additionalProperties1": { "isUsed": [], "mediaServerId": "", "notUsed": [], "ssrcPrefix": "" } }, "recordAssistPort": 0, "rtmpPort": 0, "rtmpSSlPort": 0, "rtpEnable": true, "rtpPortRange": "", "rtpProxyPort": 0, "rtspPort": 0, "rtspSSLPort": 0, "sdpIp": "", "secret": "", "sendRtpPortRange": "", "ssrcConfig": { "isUsed": [], "mediaServerId": "", "notUsed": [], "ssrcPrefix": "" }, "status": true, "streamIp": "", "streamNoneReaderDelayMS": 0, "updateTime": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |mediaServerItemReq|MediaServerItemReq|body|true|MediaServerItemReq|MediaServerItemReq| | autoConfig|||false|boolean|| | createTime|||false|string|| | currentPort|||false|integer(int32)|| | defaultServer|||false|boolean|| | hookAliveInterval|||false|integer(int32)|| | hookIp|||false|string|| | httpPort|||false|integer(int32)|| | httpSSlPort|||false|integer(int32)|| | id|||false|string|| | ip|||false|string|| | lastKeepaliveTime|||false|string|| | mediaServerSsrcMap|||false|SsrcConfigReq|SsrcConfigReq| | isUsed|||false|array|string| | mediaServerId|||false|string|| | notUsed|||false|array|string| | ssrcPrefix|||false|string|| | recordAssistPort|||false|integer(int32)|| | rtmpPort|||false|integer(int32)|| | rtmpSSlPort|||false|integer(int32)|| | rtpEnable|||false|boolean|| | rtpPortRange|||false|string|| | rtpProxyPort|||false|integer(int32)|| | rtspPort|||false|integer(int32)|| | rtspSSLPort|||false|integer(int32)|| | sdpIp|||false|string|| | secret|||false|string|| | sendRtpPortRange|||false|string|| | ssrcConfig|||false|SsrcConfigReq|SsrcConfigReq| | isUsed|||false|array|string| | mediaServerId|||false|string|| | notUsed|||false|array|string| | ssrcPrefix|||false|string|| | status|||false|boolean|| | streamIp|||false|string|| | streamNoneReaderDelayMS|||false|integer(int32)|| | updateTime|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` ## 重启服务 **接口地址**:`/api/server/restart` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: 暂无 **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 版本信息 **接口地址**:`/api/server/version` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: 暂无 **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«VersionPo»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||VersionPo|VersionPo| | artifactId||string|| | build_DATE||string|| | build_Jdk||string|| | create_By||string|| | git_BRANCH||string|| | git_Revision||string|| | git_Revision_SHORT||string|| | git_URL||string|| | project||string|| | version||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": { "artifactId": "", "build_DATE": "", "build_Jdk": "", "create_By": "", "git_BRANCH": "", "git_Revision": "", "git_Revision_SHORT": "", "git_URL": "", "project": "", "version": "" }, "msg": "" } ``` # 用户管理 ## 添加用户 **接口地址**:`/api/user/add` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |password|密码(未md5加密的密码)|query|true|string|| |roleId|角色ID|query|true|string|| |username|用户名|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«int»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||integer(int32)|integer(int32)| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": 0, "msg": "" } ``` ## 查询用户 **接口地址**:`/api/user/all` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: 暂无 **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«List«User»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||array|User| | createTime||string|| | id||integer(int32)|| | password||string|| | role||Role|Role| | authority||string|| | createTime||string|| | id||integer|| | name||string|| | updateTime||string|| | updateTime||string|| | username||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": [ { "createTime": "", "id": 0, "password": "", "role": { "authority": "", "createTime": "", "id": 0, "name": "", "updateTime": "" }, "updateTime": "", "username": "" } ], "msg": "" } ``` ## 修改密码 **接口地址**:`/api/user/changePassword` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |oldPassword|oldPassword|query|true|string|| |password|新密码(未md5加密的密码)|query|true|string|| |username|用户名||true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 删除用户 **接口地址**:`/api/user/delete` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |id|用户Id|query|true|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` ## 登录 **接口地址**:`/api/user/login` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |password|密码(32位md5加密)|query|true|string|| |username|用户名|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«LoginUser»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||LoginUser|LoginUser| | accountNonExpired||boolean|| | accountNonLocked||boolean|| | authorities||array|GrantedAuthority| | authority||string|| | credentialsNonExpired||boolean|| | enabled||boolean|| | id||integer(int32)|| | password||string|| | role||Role|Role| | authority||string|| | createTime||string|| | id||integer|| | name||string|| | updateTime||string|| | username||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": { "accountNonExpired": true, "accountNonLocked": true, "authorities": [ { "authority": "" } ], "credentialsNonExpired": true, "enabled": true, "id": 0, "password": "", "role": { "authority": "", "createTime": "", "id": 0, "name": "", "updateTime": "" }, "username": "" }, "msg": "" } ``` # 级联平台管理 ## 添加上级平台信息 **接口地址**:`/api/platform/add` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "administrativeDivision": "", "alarmSubscribe": true, "catalogGroup": 0, "catalogId": "", "catalogSubscribe": true, "channelCount": 0, "characterSet": "", "deviceGBId": "", "deviceIp": "", "devicePort": "", "enable": true, "expires": "", "id": 0, "keepTimeout": "", "mobilePositionSubscribe": true, "name": "", "password": "", "ptz": true, "rtcp": true, "serverGBDomain": "", "serverGBId": "", "serverIP": "", "serverPort": 0, "shareAllLiveStream": true, "startOfflinePush": true, "status": true, "transport": "", "username": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |parentPlatform|ParentPlatform|body|true|ParentPlatform|ParentPlatform| | administrativeDivision|||false|string|| | alarmSubscribe|||false|boolean|| | catalogGroup|||false|integer(int32)|| | catalogId|||false|string|| | catalogSubscribe|||false|boolean|| | channelCount|||false|integer(int32)|| | characterSet|||false|string|| | deviceGBId|||false|string|| | deviceIp|||false|string|| | devicePort|||false|string|| | enable|||false|boolean|| | expires|||false|string|| | id|||false|integer(int32)|| | keepTimeout|||false|string|| | mobilePositionSubscribe|||false|boolean|| | name|||false|string|| | password|||false|string|| | ptz|||false|boolean|| | rtcp|||false|boolean|| | serverGBDomain|||false|string|| | serverGBId|||false|string|| | serverIP|||false|string|| | serverPort|||false|integer(int32)|| | shareAllLiveStream|||false|boolean|| | startOfflinePush|||false|boolean|| | status|||false|boolean|| | transport|||false|string|| | username|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` ## 获取目录 **接口地址**:`/api/platform/catalog` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |parentId|目录父ID|query|true|string|| |platformId|平台ID|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«List«PlatformCatalog»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||array|PlatformCatalog| | childrenCount||integer(int32)|| | id||string|| | name||string|| | parentId||string|| | platformId||string|| | type||integer(int32)|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": [ { "childrenCount": 0, "id": "", "name": "", "parentId": "", "platformId": "", "type": 0 } ], "msg": "" } ``` ## 添加目录 **接口地址**:`/api/platform/catalog/add` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "childrenCount": 0, "id": "", "name": "", "parentId": "", "platformId": "", "type": 0 } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |platformCatalog|PlatformCatalog|body|true|PlatformCatalog|PlatformCatalog| | childrenCount|||false|integer(int32)|| | id|||false|string|| | name|||false|string|| | parentId|||false|string|| | platformId|||false|string|| | type|||false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«List«PlatformCatalog»»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||array|PlatformCatalog| | childrenCount||integer(int32)|| | id||string|| | name||string|| | parentId||string|| | platformId||string|| | type||integer(int32)|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": [ { "childrenCount": 0, "id": "", "name": "", "parentId": "", "platformId": "", "type": 0 } ], "msg": "" } ``` ## 修改默认目录 **接口地址**:`/api/platform/catalog/default/update` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |catalogId|目录Id|query|true|string|| |platformId|平台Id|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` ## 删除目录 **接口地址**:`/api/platform/catalog/del` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |id|目录Id|query|true|string|| |platformId|platformId|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` ## 编辑目录 **接口地址**:`/api/platform/catalog/edit` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "childrenCount": 0, "id": "", "name": "", "parentId": "", "platformId": "", "type": 0 } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |platformCatalog|PlatformCatalog|body|true|PlatformCatalog|PlatformCatalog| | childrenCount|||false|integer(int32)|| | id|||false|string|| | name|||false|string|| | parentId|||false|string|| | platformId|||false|string|| | type|||false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«List«PlatformCatalog»»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||array|PlatformCatalog| | childrenCount||integer(int32)|| | id||string|| | name||string|| | parentId||string|| | platformId||string|| | type||integer(int32)|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": [ { "childrenCount": 0, "id": "", "name": "", "parentId": "", "platformId": "", "type": 0 } ], "msg": "" } ``` ## 删除关联 **接口地址**:`/api/platform/catalog/relation/del` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "childrenCount": 0, "id": "", "name": "", "parentId": "", "platformId": "", "type": 0 } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |platformCatalog|PlatformCatalog|body|true|PlatformCatalog|PlatformCatalog| | childrenCount|||false|integer(int32)|| | id|||false|string|| | name|||false|string|| | parentId|||false|string|| | platformId|||false|string|| | type|||false|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«List«PlatformCatalog»»| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||array|PlatformCatalog| | childrenCount||integer(int32)|| | id||string|| | name||string|| | parentId||string|| | platformId||string|| | type||integer(int32)|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": [ { "childrenCount": 0, "id": "", "name": "", "parentId": "", "platformId": "", "type": 0 } ], "msg": "" } ``` ## 分页查询级联平台的所有所有通道 **接口地址**:`/api/platform/channel_list` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |catalogId|目录ID|query|false|string|| |channelType|通道类型|query|false|boolean|| |count|每页条数|query|false|integer(int32)|| |online|是否在线|query|false|boolean|| |page|当前页|query|false|integer(int32)|| |platformId|上级平台ID|query|false|string|| |query|查询内容|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo«ChannelReduce»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|ChannelReduce| | catalogId||string|| | channelId||string|| | deviceId||string|| | hostAddress||string|| | id||integer(int32)|| | manufacturer||string|| | name||string|| | platformId||string|| | subCount||integer(int32)|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [ { "catalogId": "", "channelId": "", "deviceId": "", "hostAddress": "", "id": 0, "manufacturer": "", "name": "", "platformId": "", "subCount": 0 } ], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 从上级平台移除国标通道 **接口地址**:`/api/platform/del_channel_for_gb` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "catalogId": "", "channelReduces": [ { "catalogId": "", "channelId": "", "deviceId": "", "hostAddress": "", "id": 0, "manufacturer": "", "name": "", "platformId": "", "subCount": 0 } ], "platformId": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |updateChannelParam|UpdateChannelParam|body|true|UpdateChannelParam|UpdateChannelParam| | catalogId|||false|string|| | channelReduces|||false|array|ChannelReduce| | catalogId|||false|string|| | channelId|||false|string|| | deviceId|||false|string|| | hostAddress|||false|string|| | id|||false|integer|| | manufacturer|||false|string|| | name|||false|string|| | platformId|||false|string|| | subCount|||false|integer|| | platformId|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 删除上级平台 **接口地址**:`/api/platform/delete/{serverGBId}` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |serverGBId|上级平台国标ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 查询上级平台是否存在 **接口地址**:`/api/platform/exit/{serverGBId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |serverGBId|上级平台国标ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 获取国标服务的配置 **接口地址**:`/api/platform/info/{id}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |id|id|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«ParentPlatform»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||ParentPlatform|ParentPlatform| | administrativeDivision||string|| | alarmSubscribe||boolean|| | catalogGroup||integer(int32)|| | catalogId||string|| | catalogSubscribe||boolean|| | channelCount||integer(int32)|| | characterSet||string|| | deviceGBId||string|| | deviceIp||string|| | devicePort||string|| | enable||boolean|| | expires||string|| | id||integer(int32)|| | keepTimeout||string|| | mobilePositionSubscribe||boolean|| | name||string|| | password||string|| | ptz||boolean|| | rtcp||boolean|| | serverGBDomain||string|| | serverGBId||string|| | serverIP||string|| | serverPort||integer(int32)|| | shareAllLiveStream||boolean|| | startOfflinePush||boolean|| | status||boolean|| | transport||string|| | username||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": { "administrativeDivision": "", "alarmSubscribe": true, "catalogGroup": 0, "catalogId": "", "catalogSubscribe": true, "channelCount": 0, "characterSet": "", "deviceGBId": "", "deviceIp": "", "devicePort": "", "enable": true, "expires": "", "id": 0, "keepTimeout": "", "mobilePositionSubscribe": true, "name": "", "password": "", "ptz": true, "rtcp": true, "serverGBDomain": "", "serverGBId": "", "serverIP": "", "serverPort": 0, "shareAllLiveStream": true, "startOfflinePush": true, "status": true, "transport": "", "username": "" }, "msg": "" } ``` ## 分页查询级联平台 **接口地址**:`/api/platform/query/{count}/{page}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |count|每页条数|path|true|integer(int32)|| |page|当前页|path|true|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo«ParentPlatform»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|ParentPlatform| | administrativeDivision||string|| | alarmSubscribe||boolean|| | catalogGroup||integer(int32)|| | catalogId||string|| | catalogSubscribe||boolean|| | channelCount||integer(int32)|| | characterSet||string|| | deviceGBId||string|| | deviceIp||string|| | devicePort||string|| | enable||boolean|| | expires||string|| | id||integer(int32)|| | keepTimeout||string|| | mobilePositionSubscribe||boolean|| | name||string|| | password||string|| | ptz||boolean|| | rtcp||boolean|| | serverGBDomain||string|| | serverGBId||string|| | serverIP||string|| | serverPort||integer(int32)|| | shareAllLiveStream||boolean|| | startOfflinePush||boolean|| | status||boolean|| | transport||string|| | username||string|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [ { "administrativeDivision": "", "alarmSubscribe": true, "catalogGroup": 0, "catalogId": "", "catalogSubscribe": true, "channelCount": 0, "characterSet": "", "deviceGBId": "", "deviceIp": "", "devicePort": "", "enable": true, "expires": "", "id": 0, "keepTimeout": "", "mobilePositionSubscribe": true, "name": "", "password": "", "ptz": true, "rtcp": true, "serverGBDomain": "", "serverGBId": "", "serverIP": "", "serverPort": 0, "shareAllLiveStream": true, "startOfflinePush": true, "status": true, "transport": "", "username": "" } ], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` ## 保存上级平台信息 **接口地址**:`/api/platform/save` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "administrativeDivision": "", "alarmSubscribe": true, "catalogGroup": 0, "catalogId": "", "catalogSubscribe": true, "channelCount": 0, "characterSet": "", "deviceGBId": "", "deviceIp": "", "devicePort": "", "enable": true, "expires": "", "id": 0, "keepTimeout": "", "mobilePositionSubscribe": true, "name": "", "password": "", "ptz": true, "rtcp": true, "serverGBDomain": "", "serverGBId": "", "serverIP": "", "serverPort": 0, "shareAllLiveStream": true, "startOfflinePush": true, "status": true, "transport": "", "username": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |parentPlatform|ParentPlatform|body|true|ParentPlatform|ParentPlatform| | administrativeDivision|||false|string|| | alarmSubscribe|||false|boolean|| | catalogGroup|||false|integer(int32)|| | catalogId|||false|string|| | catalogSubscribe|||false|boolean|| | channelCount|||false|integer(int32)|| | characterSet|||false|string|| | deviceGBId|||false|string|| | deviceIp|||false|string|| | devicePort|||false|string|| | enable|||false|boolean|| | expires|||false|string|| | id|||false|integer(int32)|| | keepTimeout|||false|string|| | mobilePositionSubscribe|||false|boolean|| | name|||false|string|| | password|||false|string|| | ptz|||false|boolean|| | rtcp|||false|boolean|| | serverGBDomain|||false|string|| | serverGBId|||false|string|| | serverIP|||false|string|| | serverPort|||false|integer(int32)|| | shareAllLiveStream|||false|boolean|| | startOfflinePush|||false|boolean|| | status|||false|boolean|| | transport|||false|string|| | username|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ``` ## 获取国标服务的配置 **接口地址**:`/api/platform/server_config` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: 暂无 **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 向上级平台添加国标通道 **接口地址**:`/api/platform/update_channel_for_gb` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "catalogId": "", "channelReduces": [ { "catalogId": "", "channelId": "", "deviceId": "", "hostAddress": "", "id": 0, "manufacturer": "", "name": "", "platformId": "", "subCount": 0 } ], "platformId": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |updateChannelParam|UpdateChannelParam|body|true|UpdateChannelParam|UpdateChannelParam| | catalogId|||false|string|| | channelReduces|||false|array|ChannelReduce| | catalogId|||false|string|| | channelId|||false|string|| | deviceId|||false|string|| | hostAddress|||false|string|| | id|||false|integer|| | manufacturer|||false|string|| | name|||false|string|| | platformId|||false|string|| | subCount|||false|integer|| | platformId|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` # 视频回放 ## 回放暂停 **接口地址**:`/api/playback/pause/{streamId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |streamId|回放流ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 回放恢复 **接口地址**:`/api/playback/resume/{streamId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |streamId|回放流ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 回放拖动播放 **接口地址**:`/api/playback/seek/{streamId}/{seekTime}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |seekTime|拖动偏移量,单位s|path|true|integer(int64)|| |streamId|回放流ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 回放倍速播放 **接口地址**:`/api/playback/speed/{streamId}/{speed}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |speed|倍速0.25 0.5 1、2、4|path|true|number(double)|| |streamId|回放流ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 开始视频回放 **接口地址**:`/api/playback/start/{deviceId}/{channelId}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| |endTime|结束时间|query|false|string|| |startTime|开始时间|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|DeferredResult«ResponseEntity«string»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |result||object|| |setOrExpired||boolean|| **响应示例**: ```javascript { "result": {}, "setOrExpired": true } ``` ## 停止视频回放 **接口地址**:`/api/playback/stop/{deviceId}/{channelId}/{stream}` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |channelId|通道ID|path|true|string|| |deviceId|设备ID|path|true|string|| |stream|流ID|path|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` # 视频流关联到级联平台 ## 保存国标关联 **接口地址**:`/api/gbStream/add` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "catalogId": "", "gbStreams": [ { "app": "", "catalogId": "", "createStamp": 0, "gbId": "", "gbStreamId": 0, "latitude": 0, "longitude": 0, "mediaServerId": "", "name": "", "platformId": "", "status": true, "stream": "", "streamType": "" } ], "platformId": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |gbStreamParam|GbStreamParam|body|true|GbStreamParam|GbStreamParam| | catalogId|||false|string|| | gbStreams|||false|array|GbStream| | app|||false|string|| | catalogId|||false|string|| | createStamp|||false|integer|| | gbId|||false|string|| | gbStreamId|||false|integer|| | latitude|||false|number|| | longitude|||false|number|| | mediaServerId|||false|string|| | name|||false|string|| | platformId|||false|string|| | status|||false|boolean|| | stream|||false|string|| | streamType|||false|string|| | platformId|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 移除国标关联 **接口地址**:`/api/gbStream/del` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded,application/json` **响应数据类型**:`*/*` **接口描述**: **请求示例**: ```javascript { "catalogId": "", "gbStreams": [ { "app": "", "catalogId": "", "createStamp": 0, "gbId": "", "gbStreamId": 0, "latitude": 0, "longitude": 0, "mediaServerId": "", "name": "", "platformId": "", "status": true, "stream": "", "streamType": "" } ], "platformId": "" } ``` **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |gbStreamParam|GbStreamParam|body|true|GbStreamParam|GbStreamParam| | catalogId|||false|string|| | gbStreams|||false|array|GbStream| | app|||false|string|| | catalogId|||false|string|| | createStamp|||false|integer|| | gbId|||false|string|| | gbStreamId|||false|integer|| | latitude|||false|number|| | longitude|||false|number|| | mediaServerId|||false|string|| | name|||false|string|| | platformId|||false|string|| | status|||false|boolean|| | stream|||false|string|| | streamType|||false|string|| | platformId|||false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: 暂无 **响应示例**: ```javascript ``` ## 查询国标通道 **接口地址**:`/api/gbStream/list` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |count|每页条数|query|true|integer(int32)|| |page|当前页|query|true|integer(int32)|| |platformId|平台ID|query|true|string|| |catalogId|目录ID|query|false|string|| |mediaServerId|流媒体ID|query|false|string|| |pushing|是否正在推流|query|false|boolean|| |query|查询内容|query|false|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|PageInfo«GbStream»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |endRow||integer(int64)|integer(int64)| |hasNextPage||boolean|| |hasPreviousPage||boolean|| |isFirstPage||boolean|| |isLastPage||boolean|| |list||array|GbStream| | app||string|| | catalogId||string|| | createStamp||integer(int64)|| | gbId||string|| | gbStreamId||integer(int32)|| | latitude||number(double)|| | longitude||number(double)|| | mediaServerId||string|| | name||string|| | platformId||string|| | status||boolean|| | stream||string|| | streamType||string|| |navigateFirstPage||integer(int32)|integer(int32)| |navigateLastPage||integer(int32)|integer(int32)| |navigatePages||integer(int32)|integer(int32)| |navigatepageNums||array|| |nextPage||integer(int32)|integer(int32)| |pageNum||integer(int32)|integer(int32)| |pageSize||integer(int32)|integer(int32)| |pages||integer(int32)|integer(int32)| |prePage||integer(int32)|integer(int32)| |size||integer(int32)|integer(int32)| |startRow||integer(int64)|integer(int64)| |total||integer(int64)|integer(int64)| **响应示例**: ```javascript { "endRow": 0, "hasNextPage": true, "hasPreviousPage": true, "isFirstPage": true, "isLastPage": true, "list": [ { "app": "", "catalogId": "", "createStamp": 0, "gbId": "", "gbStreamId": 0, "latitude": 0, "longitude": 0, "mediaServerId": "", "name": "", "platformId": "", "status": true, "stream": "", "streamType": "" } ], "navigateFirstPage": 0, "navigateLastPage": 0, "navigatePages": 0, "navigatepageNums": [], "nextPage": 0, "pageNum": 0, "pageSize": 0, "pages": 0, "prePage": 0, "size": 0, "startRow": 0, "total": 0 } ``` # 角色管理 ## 添加角色 **接口地址**:`/api/role/add` **请求方式**:`POST` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |authority|权限(自行定义内容,目前未使用)|query|true|string|| |name|角色名|query|true|string|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«int»| |201|Created|| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||integer(int32)|integer(int32)| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": 0, "msg": "" } ``` ## 查询角色 **接口地址**:`/api/role/all` **请求方式**:`GET` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: 暂无 **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«List«Role»»| |401|Unauthorized|| |403|Forbidden|| |404|Not Found|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||array|Role| | authority||string|| | createTime||string|| | id||integer(int32)|| | name||string|| | updateTime||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": [ { "authority": "", "createTime": "", "id": 0, "name": "", "updateTime": "" } ], "msg": "" } ``` ## 删除角色 **接口地址**:`/api/role/delete` **请求方式**:`DELETE` **请求数据类型**:`application/x-www-form-urlencoded` **响应数据类型**:`*/*` **接口描述**: **请求参数**: | 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema | | -------- | -------- | ----- | -------- | -------- | ------ | |id|用户Id|query|true|integer(int32)|| **响应状态**: | 状态码 | 说明 | schema | | -------- | -------- | ----- | |200|OK|WVPResult«string»| |204|No Content|| |401|Unauthorized|| |403|Forbidden|| **响应参数**: | 参数名称 | 参数说明 | 类型 | schema | | -------- | -------- | ----- |----- | |code||integer(int32)|integer(int32)| |data||string|| |msg||string|| **响应示例**: ```javascript { "code": 0, "data": "", "msg": "" } ```