2025-10-21 08:29:56 +00:00
dev
2025-10-21 08:29:56 +00:00
dev
2025-10-21 08:10:15 +00:00
dev
2025-10-21 08:10:15 +00:00
dev
2025-10-21 08:10:15 +00:00
dev
2025-10-21 08:10:15 +00:00
dev
2025-10-21 08:10:15 +00:00
dev
2025-10-21 08:29:56 +00:00

est-api

EST 本地部署的后端 API包含两个子服务并通过统一入口启动

  • 根路径 /平台框架接口frameworkapi
  • 前缀 /dsxapiDSX 模拟器相关接口dsxapi

快速启动

# 安装依赖
npm install

# 启动统一入口(默认监听 3000
npm start
  • 统一入口:app.js,将 frameworkapi 挂载到 /dsxapi 挂载到 /dsxapi
  • 端口:默认 3000

目录结构

  • /app.js 统一入口,挂载两个子服务
  • /farmeworkapi/ 平台框架接口
    • .env 环境变量文件(子服务加载)
    • farmeworkapi.js 主入口
    • license/ 存放许可证(.lic
    • pub.pem/priv.pem 公钥/私钥;license_issuer.html 颁发页面
    • network 宿主机网络配置中转文件
  • /dsxapi/ DSX 模拟器接口
    • dsxapi.js 主入口
    • competition_data/ 结束后持久化的比赛数据(.est
    • competition_tmp/ 比赛进行时的临时备份目录
    • connection_maps/connectionMap.json 连接映射持久化

配置与环境变量

farmeworkapi 会加载其目录下 .env

# Database configuration
DB_HOST=est_mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQMYcjqnrMnr9G
DB_NAME=login

# SurveyKing_DB_NAME 
SurveyKing_DB_HOST=est_mysql
SurveyKing_DB_PORT=3306
SurveyKing_DB_USER=root
SurveyKing_DB_PASSWORD=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQMYcjqnrMnr9G
SurveyKing_DB_NAME=surveyking

# JWT configuration
JWT_SECRET=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDQMYcjqnrMnr9G

# Server configuration
PORT=3000

路由与接口

以下路径均为统一入口下的最终路径。

frameworkapi前缀 /

  • POST /login AES(CBC) 加密的登录数据,成功返回 token 与用户等级
  • GET /check-auth(鉴权)返回当前用户认证状态
  • POST /verify-token 校验令牌有效性
  • GET /user-info(鉴权)获取用户信息
  • GET /verify-admin(鉴权)校验是否管理员
  • GET /admin/users(鉴权)列出用户
  • POST /admin/users(鉴权)新增/修改用户
  • DELETE /admin/users/:student_id(鉴权)删除用户
  • GET /online-users(鉴权)在线与历史统计
  • POST /update-activity(鉴权)更新心跳/活跃时间
  • POST /logout(鉴权)登出

许可证相关:

  • GET /public-key 获取 RSA 公钥(用于前端加密)
  • GET /product-model 返回产品型号(随许可证状态)
  • POST /upload-license 上传 .lic 文件并验证form-data
  • GET /license-status 许可证验证状态摘要
  • GET /license-info(鉴权)许可证详细信息

网络配置:

  • GET /network-config(鉴权)读取 farmeworkapi/network
  • POST /network-config(鉴权)更新指定键:BOOTPROTOIPADDRNETMASKGATEWAYDNS
    • BOOTPROTO 仅支持 dhcpstatic
    • static 时必须提供 IPADDRNETMASKGATEWAYDNS

Survey 数据:

  • GET /survey-answers 读取 SurveyKing 数据库中的问卷答案(具体查询参数以实现为准)

dsxapi前缀 /dsxapi

连接映射:

  • GET /api/connectionMap?scene=XXX 返回 pass 与指定场景合并后的映射
  • POST /api/connectionMap 更新某场景映射(禁止修改 pass
  • POST /api/initConnectionMap 恢复到初始映射并持久化

比赛流程:

  • POST /api/competition/start 开始比赛,返回 UUID,每分钟写入临时备份到 competition_tmp/<UUID>/
  • POST /api/competition/end 结束比赛,写入编码 .est 文件到 competition_data/
  • GET /api/competition/status 查询是否进行中及 UUID、开始时间
  • POST /api/competition/data 上传统计数据(需携带 UUIDfingerprintdata
  • GET /api/competition/data?UUID=...&fingerprint=... 查询指定指纹数据(返回 projects
  • GET /api/competition/data 返回当前全部统计数据快照

日志

  • farmeworkapi/server.log 常规日志;farmeworkapi/admin.log 管理员操作日志
  • dsxapi 独立运行时在控制台输出重要提示与告警

Docker 与挂载建议

  • 挂载 farmeworkapi/license/ 以便导入许可证
  • 挂载 farmeworkapi/network 供网络配置接口读写
  • 挂载 /hardware_serial 到容器内,提供硬件序列号以完成许可证绑定
  • 可选择将 dsxapi/competition_data/dsxapi/competition_tmp/ 映射到持久卷
Description
No description provided
Readme 3 MiB
Languages
JavaScript 84.5%
HTML 15.5%