Skip to content

数据备份API

数据备份API提供设备数据的加密备份、查询和恢复功能。

接口列表

接口方法路径说明
创建备份POST/api/backups创建数据备份
备份列表GET/api/backups查询备份列表
备份详情GET/api/backups/{id}获取备份详情
恢复备份POST/api/backups/{id}/restore恢复数据到设备
删除备份DELETE/api/backups/{id}删除备份
备份统计GET/api/backups/stats备份统计信息

创建备份

为指定设备创建加密数据备份。

请求

http
POST /api/backups
Authorization: Bearer <token>
Content-Type: application/json

请求体:

json
{
  "deviceId": "DEV-1701589200123",
  "type": "FULL",
  "encryptionPassword": "backup-password-123",
  "expiresInDays": 730,
  "description": "设备升级前完整备份"
}

参数说明:

参数类型必填说明
deviceIdstring设备ID
typestring备份类型:FULL(完整)/INCREMENTAL(增量),默认FULL
encryptionPasswordstring加密密码(AES-256-GCM)
expiresInDaysnumber有效期天数,默认730(2年)
descriptionstring备份说明

响应

成功响应 (200):

json
{
  "code": 200,
  "message": "备份创建成功",
  "data": {
    "backupId": "bak-1701589200123",
    "deviceId": "DEV-1701589200123",
    "type": "FULL",
    "status": "COMPLETED",
    "size": 15728640,
    "encrypted": true,
    "expiresAt": "2026-12-02T10:30:00Z",
    "createdAt": "2024-12-02T10:30:00Z"
  }
}

备份列表

分页查询备份记录。

请求

http
GET /api/backups?deviceId=DEV-1701589200123&page=1&pageSize=20
Authorization: Bearer <token>

查询参数:

参数类型必填说明
deviceIdstring按设备ID过滤
typestring按备份类型过滤
pagenumber页码,默认1
pageSizenumber每页条数,默认20

响应

成功响应 (200):

json
{
  "code": 200,
  "message": "success",
  "data": {
    "items": [
      {
        "backupId": "bak-1701589200123",
        "deviceId": "DEV-1701589200123",
        "type": "FULL",
        "status": "COMPLETED",
        "size": 15728640,
        "encrypted": true,
        "expiresAt": "2026-12-02T10:30:00Z",
        "createdAt": "2024-12-02T10:30:00Z"
      }
    ],
    "total": 5,
    "page": 1,
    "pageSize": 20
  }
}

备份详情

获取指定备份的详细信息。

请求

http
GET /api/backups/{id}
Authorization: Bearer <token>

响应

成功响应 (200):

json
{
  "code": 200,
  "message": "success",
  "data": {
    "backupId": "bak-1701589200123",
    "deviceId": "DEV-1701589200123",
    "type": "FULL",
    "status": "COMPLETED",
    "size": 15728640,
    "encrypted": true,
    "description": "设备升级前完整备份",
    "expiresAt": "2026-12-02T10:30:00Z",
    "createdAt": "2024-12-02T10:30:00Z",
    "contents": {
      "notes": 42,
      "conversations": 15,
      "settings": true,
      "keys": true
    }
  }
}

恢复备份

将备份数据恢复到指定设备。需要提供备份加密密码进行验证。

请求

http
POST /api/backups/{id}/restore
Authorization: Bearer <token>
Content-Type: application/json

请求体:

json
{
  "targetDeviceId": "DEV-1701589200456",
  "encryptionPassword": "backup-password-123",
  "overwrite": false
}

参数说明:

参数类型必填说明
targetDeviceIdstring目标设备ID
encryptionPasswordstring备份加密密码
overwriteboolean是否覆盖目标设备现有数据,默认false

响应

成功响应 (200):

json
{
  "code": 200,
  "message": "数据恢复成功",
  "data": {
    "backupId": "bak-1701589200123",
    "targetDeviceId": "DEV-1701589200456",
    "restoredItems": {
      "notes": 42,
      "conversations": 15,
      "settings": true,
      "keys": true
    },
    "completedAt": "2024-12-02T10:35:00Z"
  }
}

错误响应:

json
{
  "code": 2003,
  "message": "备份密码验证失败",
  "data": null
}

删除备份

删除指定的备份记录和备份文件。

请求

http
DELETE /api/backups/{id}
Authorization: Bearer <token>

响应

成功响应 (200):

json
{
  "code": 200,
  "message": "备份删除成功",
  "data": null
}

备份统计

获取备份相关的统计数据。

请求

http
GET /api/backups/stats
Authorization: Bearer <token>

响应

成功响应 (200):

json
{
  "code": 200,
  "message": "success",
  "data": {
    "totalBackups": 25,
    "totalSize": 524288000,
    "byType": {
      "FULL": 15,
      "INCREMENTAL": 10
    },
    "expiringSoon": 3,
    "oldestBackup": "2024-06-01T08:00:00Z",
    "latestBackup": "2024-12-02T10:30:00Z"
  }
}

错误码

错误码说明
2001设备不存在
2002备份不存在
2003备份密码验证失败
2004备份已过期
2005备份正在进行中,请稍后
2006存储空间不足
2007目标设备状态不允许恢复

基于 MIT 许可发布