简介
资源管理接口包含组织结构、视频设备的增、删、改、查等接口,同时为便于获取资源目录提供列表、树结构等形式的接口返回请求的资源信息。
通过这些开放的接口可以使第三方应用系统很灵活的管理LM视频中间件的组织和设备信息。
一般地,视频设备的资源管理有两种方式:
- 直接使用LM视频中间后台管理资源信息,在9030页面添加、修改和查看资源信息,第三方应用系统通过接口获取LM视频视频中间件已添加的设备,同步设备信息到应用系统中,从而进行后续的视频、回放和对讲等操作;
- 第三方系统通过资源信息接口直接对LM视频中间件的资源信息进行增删改查等操作,把LM视频中间件当作PaaS平台使用。
上面第一种情况在此篇幅中就不展开,查看API接口说明应该可以很顺利的开发完成,下面重点介绍下第二种方式里,添加各种视频类型协议的设备并罗列其可能使用到的API接口
资源信息API
其中获取资源树接口(/api/v1/device/tree)可以获取所有的组织和设备列表,以树结构的形式返回,前端可以直接使用此接口生成树的目录,其中入参是组织结构的ID。
获取资源树 接口因为入参是组织结构的ID,可以通过此接口获取某个用户所属的组织和设备,可用于根据权限展示设备
组织结构
组织结构的管理比较简单,无非就是父组织和自组织的关系不要混乱掉就可以了,下面枚举下组织结构操作相关的接口
序号 | 接口名称 | 快捷入口 | 备注 |
---|---|---|---|
1 | /api/v1/orgnazation/add | 跳转 | 添加组织 |
2 | api/v1/orgnazation/edit | 跳转 | 修改组织 |
3 | /api/v1/orgnazation/delete | 跳转 | 删除组织 |
4 | /api/v1/orginfo | 跳转 | 获取单个组织信息 |
5 | /api/v1/orgnazation/list | 跳转 | 获取组织列表,以列表形式返回 |
6 | /api/v1/orgnazation/tree | 跳转 | 获取组织列表,以树形式返回 |
设备管理
序号 | 接口名称 | 快捷入口 | 备注 |
---|---|---|---|
1 | /api/v1/device/add | 跳转 | 添加设备 |
2 | /api/v1/device/edit | 跳转 | 修改设备 |
3 | /api/v1/device/delete | 跳转 | 删除设备 |
4 | /api/v1/deviceinfo | 跳转 | 获取单个设备详情 |
5 | /api/v1/device/ids | 跳转 | 获取多个设备详情 |
6 | /api/v1/device/list | 跳转 | 获取设备列表 |
设备管理
在设备管理API调用之前介绍下,LM视频中间提供的几个辅助并且使用和方便接口
序号 | 接口名称 | 快捷入口 | 说明 |
---|---|---|---|
1 | /api/v1/config/devicetypelist | 跳转 | 获取平台支持的设备类型枚举 填充设备管理接口中的Type字段 |
2 | /api/v1/config/manufacturelist | 跳转 | 获取平台支持的设备协议枚举 填充设备管理接口中的Protocol字段 |
3 | /api/v1/config/deviceSearch | 跳转 | 搜索局域网内的海康、大华、Onvif设备 返回已注册的GB28181设备 |
4 | /api/v1/config/deviceChnls | 跳转 | 根据返回的设备,传入用户名、密码等信息 后向LM请求设备的通道信息 |
基于上面几个接口,第三方应用系统可以快速的添加的局域网内的大华、海康、Onvif以及已注册的GB28181设备。
LM视频中间件中设备分为两类,包含 直接登录 1和 主动注册 2设备,这两类设备在添加时发起的请求会稍微有些区别,主要是设备在这两种使用场景下登陆方式的不同导致的登录凭据有些区别,下面分开着重介绍下。
直接登录设备
直接登录设备因使用的设备IP(域名)、端口、用户名和密码做为寻找设备及发起登录链接的需要携带的必要信息,因此在发起设备添加请求时:
- 请求参数中的 RemoteIP, RemotePort, UserName, Password 几个参数为必填项
- 参数 RegisterId 为选填项
- DevID参数需要全局唯一,长度不能超过24的字符串(不含@,$等特殊符号),由第三方应用平台确保生成规则,当然LM视频中间件在收到添加请求时也会检查,并返回错误
提示:
- 海康设备默认登陆端口为8000
- 大华设备默认登陆端口时37777
主动注册设备
对于主动注册设备,LM视频中间件采用注册ID作为唯一标识,一对一匹配到正确设备,因此在发起设备添加请求时:
- 请求参数中的 RemoteIP , RemotePort,UserName, Password 几个参数不需要传
- 参数 RegisterId 为必填项,且必须保证唯一
- DevID参数需要全局唯一,长度不能超过24的字符串(不含@,$等特殊符号),由第三方应用平台确保生成规则,当然LM视频中间件在收到添加请求时也会检查,并返回错误!!!
注意
-
若设备接入的协议为GB28181时,DevID参数为国标设备的 SIP注册ID,此ID需要符合国标要求,同时参数 RegisterId 参数也和参数 DevID 保持一致
-
若设备接入的协议为ISUP(EHOME)时, DevID 参数需要确保唯一,RegisterId 参数填设备EHOME配置页面的的注册ID
示例
直接登录设备
请求
POST /api/v1/device/add?token=638044e4-dfcd-4ffc-be03-fad52af62b47 HTTP/1.1
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 250
Content-Type: application/json;charset=UTF-8
{
"DevID":"A202212414241",
"Protocol":"hikvision",
"Type":0,
"RemoteIP":"192.168.5.24",
"RemotePort":8000,
"Name":"HIK_TEST",
"UserName":"admin",
"Password":"admin12345",
"ChannelList":[
{
"Name":"HIK_524",
"Channel":1,
"Online":true,
"OrgId":1
}
],
"ChannelCount":1
}
应答
HTTP/1.1 200 OK
Server: nginx
Content-Type: application/json, text/plain, */*
Content-Length: 42
Connection: keep-alive
Access-Control-Allow-Origin: *
{
"result": 200,
"message": "OK"
}
主动注册设备
请求
POST /api/v1/device/add?token=638044e4-dfcd-4ffc-be03-fad52af62b47 HTTP/1.1
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 230
{
"Name":"ehome_test",
"RemoteIP":"",
"RemotePort":"",
"Protocol":"ehome",
"Type":0,
"RegisterId":"E8797623",
"ChannelList":[
{
"Name":"Camera01",
"Channel":1,
"OrgId":1,
"PTZType":3,
"Online":false
}
],
"ChannelCount":1,
"DevID":"A2022124141217"
}
应答
HTTP/1.1 200 OK
Server: nginx
Content-Type: application/json, text/plain, */*
Content-Length: 42
Connection: keep-alive
Access-Control-Allow-Origin: *
{
"result": 200,
"message": "OK"
}
删除设备
请求
POST /api/v1/device/delete?token=638044e4-dfcd-4ffc-be03-fad52af62b47 HTTP/1.1
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 26
Content-Type: application/json;charset=UTF-8
{
"data":[
"A202212414241"
]
}
应答
HTTP/1.1 200 OK
Server: nginx
Content-Type: application/json, text/plain, */*
Content-Length: 42
Connection: keep-alive
Access-Control-Allow-Origin: *
Cache-Control: no-cache
{
"result": 200,
"message": "OK"
}
错误码
result | message | 说明 |
---|---|---|
200 | OK | 成功 |
400 | Invalid Param | 参数错误 |
400 | protocol is not support | 视频协议不支持 |
400 | devId invalid | DevID参数错误 |
400 | devId is not exist | 设备ID不存在 |
400 | devId exist in platform | DevID已添加至平台 |
400 | Need Paramater RegisterId | 主动注册设备,RegisterId参数没传 |
400 | device ip port is exist | 直接登陆设备,IP和端口的设备已存在 |
400 | channel count is zero | 设备通道数为0 |
400 | channel num is confict | 通道数冲突,主要针对GB28181设备 |
403 | domain device modify forbidden | 域设备不允许修改 |
424 | user not login | 用户未登陆 |
534 | db connect failed | 数据库链接失败 |
534 | get gb28181 old channels failed | GB28181设备还未注册,不能添加 |
534 | add to database error | 添加数据库失败 |