Skip to content

API 参考 ​

名尚智联后端 REST API,统一前缀 /api。认证接口外均需 Sa-Token(Header Authorization)。


一、通用规范 ​

1.1 响应格式 ​

json
{
  "code": 0,
  "msg": "ok",
  "data": {}
}
code含义
0成功
401未认证 / Token 过期
403无权限
404资源不存在
500服务端错误

1.2 分页 ​

GET /api/device?pageNum=1&pageSize=20

响应:

json
{
  "code": 0,
  "data": {
    "records": [...],
    "total": 100,
    "size": 20,
    "current": 1
  }
}

1.3 认证 ​

bash
# 登录
POST /api/auth/login
{"username":"admin","password":"admin123"}
# → {"code":0,"data":{"token":"uuid-token"}}

# 后续请求
curl -H "Authorization: uuid-token" http://localhost:8080/api/device

二、认证模块 ​

方法路径说明
POST/api/auth/login账号密码登录
POST/api/auth/logout登出
GET/api/auth/info当前用户信息
GET/api/auth/captcha图形验证码

三、设备管理 ​

方法路径说明
GET/api/device设备列表(分页、按产品/状态筛选)
GET/api/device/{id}设备详情
POST/api/device创建设备
PUT/api/device/{id}更新设备
DELETE/api/device/{id}删除设备
POST/api/device/batch批量导入(Excel)
GET/api/device/{id}/shadow设备影子
POST/api/device/{id}/command下发指令
GET/api/device/{id}/command/log指令日志
POST/api/device/{id}/ota触发 OTA

创建设备 ​

bash
curl -X POST http://localhost:8080/api/device \
  -H "Authorization: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "serial": "ESP32-001",
    "name": "车间1号传感器",
    "productId": 1,
    "tenantId": 1
  }'

设备详情(含 authCode) ​

json
{
  "code": 0,
  "data": {
    "id": 1,
    "serial": "ESP32-001",
    "authCode": "a1b2c3d4e5f6...",
    "online": 1,
    "lastOnlineTime": "2026-10-17 20:00:00"
  }
}

四、产品与物模型 ​

方法路径说明
GET/api/product产品列表
GET/api/product/{id}产品详情(含物模型)
POST/api/product创建产品
PUT/api/product/{id}更新产品
DELETE/api/product/{id}删除产品
GET/api/product/{id}/model物模型
PUT/api/product/{id}/model更新物模型

物模型结构 ​

json
{
  "properties": [
    {
      "identifier": "temperature",
      "name": "温度",
      "dataType": "FLOAT",
      "unit": "℃",
      "min": -40, "max": 80
    }
  ],
  "events": [
    {
      "identifier": "alarm",
      "name": "告警",
      "dataType": "STRUCT"
    }
  ],
  "services": [
    {
      "identifier": "restart",
      "name": "重启",
      "params": []
    }
  ]
}

五、数据查询 ​

方法路径说明
GET/api/data/realtime/{deviceId}设备实时值(Redis TSLV)
GET/api/data/history历史曲线(TDengine)
GET/api/data/exportCSV 导出

历史曲线查询 ​

bash
GET /api/data/history?deviceId=1&identifier=temperature&start=2026-10-01&end=2026-10-17&interval=5m

六、规则引擎 ​

方法路径说明
GET/api/rule规则列表
POST/api/rule创建规则(LiteFlow Chain JSON)
PUT/api/rule/{id}更新规则
DELETE/api/rule/{id}删除规则
POST/api/rule/{id}/test测试运行

七、告警中心 ​

方法路径说明
GET/api/alert/rule告警规则列表
POST/api/alert/rule创建告警规则
GET/api/alert/log告警日志(未处理/已处理)
POST/api/alert/log/{id}/handle处理告警

八、EMQX Webhook(设备认证) ​

方法路径说明
POST/api/emqx/authEMQX 连接认证(Webhook)
POST/api/emqx/publishEMQX 消息转发

认证请求/响应 ​

json
// EMQX → 后端(请求)
{"username":"ESP32-001","password":"a1b2c3...","clientid":"ESP32-001_abc"}

// 后端 → EMQX(允许)
{"result": "allow"}

// 后端 → EMQX(拒绝)
{"result": "deny","message": "authCode mismatch"}

九、多租户 ​

方法路径说明
GET/api/tenant租户列表(平台管理员)
POST/api/tenant创建租户(自动建 tenant_* 数据库)
PUT/api/tenant/{id}更新租户
DELETE/api/tenant/{id}删除租户(保留数据库)

租户隔离通过 TenantContext ThreadLocal 自动实现,所有 SQL 自动注入 tenant_id 过滤,无需额外拦截器。