门禁开门接口文档
一、接口名称
门禁开门
二、接口描述
该接口用于远程控制门禁设备开门,适用于小区、办公楼等场景的门禁系统。
三、接口路径
http://ip:port/iot/api/accessControl.openAccessControlDoor
四、请求方法
POST
五、请求头
参数名称 |
必填 |
类型 |
描述 |
Authorization |
是 |
String |
用户认证token,通过登录接口获取 |
app-id |
是 |
String |
应用ID,系统分配 |
transaction-id |
是 |
String |
请求流水号,格式:1000000000+YYYYMMDDhhmmss+6位序列 |
sign |
是 |
String |
签名 |
req-time |
是 |
String |
请求时间,格式:YYYYMMDDhhmmss |
六、请求参数
6.1 请求体(JSON格式)
参数名称 |
必填 |
类型 |
描述 |
machineId |
是 |
String |
门禁设备ID |
communityId |
是 |
String |
小区ID |
七、返回值
7.1 成功响应(200 OK)
{
"code": "0",
"msg": "成功",
"data": null
}
7.2 失败响应
{
"code": "1",
"msg": "开门失败",
"data": null
}
7.3 错误状态码
状态码 |
描述 |
400 |
参数缺失(如缺少 machineId 或 communityId) |
404 |
门禁设备不存在或用户不存在 |
500 |
服务器内部错误 |
八、示例请求
POST /iot/api/accessControl.openAccessControlDoor HTTP/1.1
Host: localhost:8080
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
app-id: 10001
transaction-id: 100000000020231201143000000001
sign: 9a8b7c6d5e4f3g2h1i0j
req-time: 20231201143000
Content-Type: application/json
{
"machineId": "AC001",
"communityId": "CM001"
}
九、示例响应
9.1 成功响应
HTTP/1.1 200 OK
Content-Type: application/json
{
"code": "0",
"msg": "成功",
"data": null
}
9.2 失败响应
HTTP/1.1 200 OK
Content-Type: application/json
{
"code": "1",
"msg": "开门失败",
"data": null
}
十、业务逻辑说明
- 参数校验:检查
machineId
和 communityId
是否有效。
- 用户验证:检查请求用户是否存在。
- 门禁设备查询:根据
machineId
和 communityId
查询门禁设备信息。
- 厂商协议解析:根据门禁设备的实现类(
implBean
)获取对应的厂商协议实现类。
- 执行开门:调用厂商协议实现类的
openDoor
方法执行开门操作。
- 返回结果:根据开门结果返回成功或失败响应。
十一、相关DTO类说明
AccessControlDto(门禁设备信息)
字段 |
类型 |
描述 |
machineId |
String |
设备ID |
communityId |
String |
小区ID |
implBean |
String |
厂商协议实现类 |
userId |
String |
操作用户ID |
userName |
String |
操作用户名称 |
UserDto(用户信息)
字段 |
类型 |
描述 |
userId |
String |
用户ID |
name |
String |
用户姓名 |
HardwareManufacturerDto(硬件厂商信息)
字段 |
类型 |
描述 |
hmId |
String |
厂商ID |
protocolImpl |
String |
厂商协议实现类 |
这份文档符合 RESTful API 规范,并包含了完整的请求、响应示例和业务逻辑说明。