大三下课设 - 智能门禁系统后端
API 根域名:http://112.124.21.59:8000
数据库后台:http://112.124.21.59:9999
API 返回数据均为以下格式
{
"s": 0,
"m": "0",
"d": null
}
s
- 状态码
m
- 状态消息
d
- 相应数据
用来获取传给 /token
接口的邮件验证码
方法 |
URI |
说明 |
需要 token |
GET |
/code?uid=2017213033 |
发送验证码给该学号绑定的邮箱地址 |
否 |
⚠️ 请求下面需要 token 的接口时,需要将该获取的 token 作为请求头的 Access-Token
字段的值,否则接口会直接拦下该请求并返回状态 403 Forbidden
方法 |
URI |
说明 |
需要 token |
GET |
/token?uid=2017213033&code=631071 |
获取登陆 token |
否 |
方法 |
URI |
说明 |
需要 token |
GET |
/auth/user?uid=2017213033 |
获取学号为2017213033的学生信息 |
是 |
GET |
/auth/user?name=范铭贤&status=1 |
获取范铭贤的学生信息 |
是 |
GET |
/auth/user?status=2 |
获取所有管理员的信息 |
是 |
GET |
/auth/user?class_id=08051703 |
获取08051703班的所有学生信息 |
是 |
GET |
以此类推 |
以此类推 |
是 |
{
"uid": "2017213033", // 学号
"cid": "device_id_1", // RFID 卡号
"class_id": "08051703", // 班级号
"name": "范铭贤", // 姓名
"email": "793414991@qq.com", // 邮箱地址
"status": 1, // 状态
"ctime": 1591289287, // 创建时间
"mtime": 1591289287 // 更新时间
},
- 返回字段说明
status
- 0 - 被 ban 用户
- 1 - 一般用户
- 2 - 管理员
方法 |
URL |
说明 |
需要 token |
POST |
/auth/user |
请求JSON数据如下 |
是 |
{
"uid": "2017213033", // 学号
"cid": "device_id_1", // RFID 卡号
"class_id": "08051703", // 班级号
"name": "范铭贤", // 姓名
"email": "793414991@qq.com" // 邮箱地址
}
⚠️ status
字段会默认设为 1
方法 |
URL |
说明 |
需要 token |
PUT |
/auth/user |
请求JSON数据如下 |
是 |
{
"uid": "2017213033", // 学号,必须字段!
"email": "1653813801@qq.com" // 要更新的邮箱地址
}
这样就会把学号为 2017213033
的学生的邮箱改为 1653813801@qq.com
⚠️ 若尝试使用该接口更改 status
字段,则更改无效。
方法 |
URL |
说明 |
需要 token |
DELETE |
/auth/user?uid=2017213033 |
软删除学号为2017213033学生的信息 |
是 |
⚠️ 该删除接口不会真正删除数据,只会将该学生的 status
字段更改为 0
方法 |
URL |
说明 |
需要 token |
POST |
/pr/punch |
请求JSON数据如下 |
是 |
{
"uid": "2017213033",
"name": "范铭贤",
"phone": "173478987xx",
"location": "重庆市南岸区重庆邮电大学",
"is_temperature_ok": true,
"did_meet_hubei": false,
"has_symptom": false,
"is_family_diagnosed": false,
"did_meet_diagnoses": false,
"is_family_suspected": false
}
方法 |
URL |
说明 |
需要 token |
GET |
/pr/punch?uid=2017213033 |
获取学号为2017213033的打卡记录 |
是 |
GET |
/pr/punch?uid=2017213033&name=范铭贤 |
获取学号为2017213033且名字为范铭贤的打卡记录 |
是 |
GET |
/pr/punch?is_temperature_ok=false |
获取体温不正常的打卡记录 |
是 |
GET |
以此类推 |
以此类推 |
是 |
{
"s": 0,
"m": "0",
"d": [
{
"id": 1, // ID,该字段不重要
"uid": "2017213033", // 学号
"name": "范铭贤", // 姓名
"phone": "173478987xx", // 手机号码
"location": "重庆市南岸区重庆邮电大学", // 当前所在地
"is_temperature_ok": true, // 体温是否正常
"did_meet_hubei": false, // 是否接触湖北人员
"has_symptom": false, // 有无症状
"is_family_diagnosed": false, // 本人或家人是否确诊
"did_meet_diagnoses": false, // 是否接触确诊人员
"is_family_suspected": false, // 本人或家人是否为疑似病例
"ctime": 1591190705 // 打卡时间戳
}
]
}
方法 |
URL |
说明 |
需要 token |
GET |
/pr/punch/between?from=2020-05-30&to=2020-06-04 |
获取2020/5/30到2020/6/3的所有打卡记录 |
是 |
方法 |
URL |
说明 |
需要 token |
DELETE |
/pr/punch?id=1 |
永久删除id为1的打卡记录 |
是 |
方法 |
URL |
说明 |
需要 token |
POST |
/ac/rfid |
请求JSON数据如下 |
暂不 |
{
"uid": "2017213033", // 学号
"cid": "32_bits_device_id", // RFID 卡号
"type": 1
}
方法 |
URL |
说明 |
需要 token |
GET |
/ac/rfid?uid=2017213033 |
获取学号为2017213033学生的门禁记录 |
暂不 |
{
"s": 0,
"m": "0",
"d": [
{
"uid": "2017213033",
"cid": "32_bits_device_id",
"type": 1,
"ctime": 1591190705
}
]
}
方法 |
URL |
说明 |
需要 token |
GET |
/ac/rfid/between?from=2020-05-30&to=2020-06-04 |
获取2020/5/30到2020/6/3的所有门禁记录 |
暂不 |
方法 |
URL |
说明 |
需要 token |
DELETE |
/ac/rfid?id=1 |
永久删除id为1的门禁记录 |
暂不 |
人脸识别获取的学号和测得的体温一起作为该接口的请求参数。
方法 |
URL |
说明 |
需要 token |
POST |
/ac/temp |
请求JSON数据如下 |
暂不 |
{
"uid": "2017213033", // 学号
"temp": 36.2, // 体温
}
方法 |
URL |
说明 |
需要 token |
GET |
/ac/temp?uid=2017213033 |
获取学号为2017213033学生的体温记录 |
暂不 |
{
"s": 0,
"m": "0",
"d": [
{
"uid": "2017213033",
"temp": 36.2,
"ctime": 1591190705 // 测温时间戳
}
]
}
方法 |
URL |
说明 |
需要 token |
GET |
/ac/temp/between?from=2020-05-30&to=2020-06-04 |
获取2020/5/30到2020/6/3的所有体温记录 |
暂不 |
方法 |
URL |
说明 |
需要 token |
DELETE |
/ac/temp?id=1 |
永久删除id为1的体温记录 |
暂不 |
⚠️ ⚠️ 使用硬件访问该项目的接口需要先注册应用,获取 AppID
和 AppKey
,然后使用该 AppID
和 AppKey
去获取应用Token
。在请求头里添加 Access-Token: 应用Token
字段才能成功请求接口。
⚠️ ⚠️ 应用Token和上面的用户Token一样,有默认一周的生存时间,成功获取到Token一周后,Token会失效,所以需要开发者在项目里定期重新获取Token。
方法 |
URL |
说明 |
需要 token |
POST |
/auth/app |
请求JSON数据如下 |
app token |
表示用学号 2017213033 注册一个应用
{
"s": 0,
"m": "0",
"d": {
"appid": "2U7FSx8momoW7WiKVSZ58k",
"appkey": "2hamZaaTLvRAKcbgAU34Y8",
"uid": "2017213033",
"ctime": 0
}
}
- 返回参数说明
appid
- 应用的 App ID
appkey
- 应用的 App Key
uid
- 应用注册者的 ID
方法 |
URL |
说明 |
需要 token |
GET |
/auth/app?uid=2017213033 |
查询学号2017213033注册的应用 |
是 |
⚠️ 应用 token 用来访问下面的门禁和体温接口。
方法 |
URL |
说明 |
需要 token |
GET |
/apptoken?uid=2017213033&appid=xxx&appkey=xxx |
应用AppID为xxx的应用获取 token |
否 |
方法 |
URL |
说明 |
需要 token |
POST |
/ac/rfid |
请求JSON数据如下 |
是 |
{
"uid": "2017213033", // 学号
"cid": "32_bits_device_id", // RFID 卡号
"type": 1
}
方法 |
URL |
说明 |
需要 token |
GET |
/ac/rfid?uid=2017213033 |
获取学号为2017213033学生的门禁记录 |
是 |
{
"s": 0,
"m": "0",
"d": [
{
"uid": "2017213033",
"cid": "32_bits_device_id",
"type": 1,
"ctime": 1591190705
}
]
}
方法 |
URL |
说明 |
需要 token |
GET |
/ac/rfid/between?from=2020-05-30&to=2020-06-04 |
获取2020/5/30到2020/6/3的所有门禁记录 |
是 |
方法 |
URL |
说明 |
需要 token |
DELETE |
/ac/rfid?id=1 |
永久删除id为1的门禁记录 |
是 |
人脸识别获取的学号和测得的体温一起作为该接口的请求参数。
方法 |
URL |
说明 |
需要 token |
POST |
/ac/temp |
请求JSON数据如下 |
是 |
{
"uid": "2017213033", // 学号
"temp": 36.2, // 体温
}
方法 |
URL |
说明 |
需要 token |
GET |
/ac/temp?uid=2017213033 |
获取学号为2017213033学生的体温记录 |
是 |
{
"s": 0,
"m": "0",
"d": [
{
"uid": "2017213033",
"temp": 36.2,
"ctime": 1591190705 // 测温时间戳
}
]
}
方法 |
URL |
说明 |
需要 token |
GET |
/ac/temp/between?from=2020-05-30&to=2020-06-04 |
获取2020/5/30到2020/6/3的所有体温记录 |
是 |
方法 |
URL |
说明 |
需要 token |
GET |
/ac/temp/today |
获取当天所有体温记录 |
是 |
GET |
/ac/temp/today?uid=2017213033 |
获取学号为2107213033学生当天的体温记录 |
是 |
方法 |
URL |
说明 |
需要 token |
DELETE |
/ac/temp?id=1 |
永久删除id为1的体温记录 |
是 |
方法 |
URL |
说明 |
需要 token |
GET |
/stat/temp |
获取当天体温检测统计数据 |
是 |
{
"s": 0,
"m": "0",
"d": {
"total": 3,
"normal": {
"total": 2,
"temps": [
{
"uid": "2017213033",
"temp": 36.5
},
{
"uid": "2017213034",
"temp": 36.2
}
]
},
"abnormal": {
"total": 1,
"temps": [
{
"uid": "2017213040",
"temp": 33.7
}
]
}
}
}
- 返回参数说明
abnormal
- 异常体温数据
normal
- 正常体温数据
total
- 总个数
如需要在每天固定时间给未测体温的人发送提醒邮件,则需要开发者自行编写定时任务请求此接口即🉑。
方法 |
URL |
说明 |
需要 token |
GET |
/stat/notemp |
获取当天未测体温的用户 |
是 |
GET |
/stat/notemp?warn=true |
获取当天未测体温的用户并给他们发提醒邮件 |
是 |
方法 |
URL |
说明 |
需要 token |
GET |
/stat/rfid/last |
获取当天已刷门禁用户的最后记录 |
是 |
{
"s": 0,
"m": "0",
"d": {
"total": 2,
"out": {
"2017213033": {
"id": 15,
"uid": "2017213033",
"rfid": "test_device_id_33",
"type": 1,
"ctime": 1593136471
}
},
"in": {
"2017213056": {
"id": 14,
"uid": "2017213033",
"rfid": "test_device_id_33",
"type": 2,
"ctime": 1593136456
}
}
}
}
如需要在每天固定时间给当天还未归寝的人发送提醒邮件,则需要开发者自行编写定时任务请求此接口即🉑。
方法 |
URL |
说明 |
需要 token |
GET |
/stat/rfid/nochkin |
获取当天未最后未刷入门禁的用户 |
是 |
GET |
/stat/rfid/nochkin?warn=true |
获取当天未最后未刷入门禁的用户并向他们发送提醒归寝邮件 |
是 |
{
"s": 0,
"m": "0",
"d": [
{
"user": {
"id": 3,
"uid": "2017213033",
"cid": "device_id_1",
"class_id": "08051703",
"name": "范铭贤",
"email": "793414991@qq.com",
"status": 2,
"ctime": 1591876165,
"mtime": 1591876192
},
"last_checkout": 1593139097
}
]
}
- 返回数据参数说明
last_checkout
- 当天最后一次门禁刷出时间