核心操作
获取仪表板数据(合并)- /api/dashboard
-
端点:
/api/dashboard -
方法:GET
-
描述:在单个合并响应中检索所有仪表板数据,包括服务器摘要、总体摘要和图表数据。
-
响应:
{"serversSummary": [{"id": "server-id","name": "Server Name","lastBackupDate": "2024-03-20T10:00:00Z","lastBackupStatus": "Success","lastBackupDuration": "00:38:31","lastBackupListCount": 10,"lastBackupName": "Backup Name","lastBackupId": "backup-id","backupCount": 15,"totalWarnings": 5,"totalErrors": 0,"availableBackups": ["v1", "v2", "v3"],"isBackupOverdue": false,"notificationEvent": "all","expectedBackupDate": "2024-03-21T10:00:00Z","expectedBackupElapsed": "2 hours ago","lastOverdueCheck": "2024-03-20T12:00:00Z","lastNotificationSent": "N/A"}],"overallSummary": {"totalServers": 3,"totalBackups": 9,"totalUploadedSize": 2397229507,"totalStorageUsed": 43346796938,"totalBackupSize": 126089687807,"overdueBackupsCount": 2,"secondsSinceLastBackup": 7200},"chartData": [{"date": "20/03/2024","isoDate": "2024-03-20T10:00:00Z","uploadedSize": 1024000,"duration": 45,"fileCount": 1500,"fileSize": 2048000,"storageSize": 3072000,"backupVersions": 5}]} -
错误响应:
500:获取仪表板数据时服务器错误
-
备注:
- 此端点合并了以前的
/api/servers-summary端点(已被移除) overallSummary字段包含与/api/summary相同的数据(为外部应用程序维护)chartData字段包含与/api/chart-data/aggregated相同的数据(仍存在以供直接访问)- 通过将多个 API 调用减少到单个请求来提供更好的性能
- 所有数据并行获取以获得最佳性能
secondsSinceLastBackup字段显示自上次备份以来经过的秒数(跨所有服务器)
- 此端点合并了以前的
获取所有服务器 - /api/servers
-
端点:
/api/servers -
方法:GET
-
描述:检索所有服务器及其基本信息的列表。可选择性地包含备份信息。
-
身份验证:需要有效的会话和 CSRF 令牌
-
查询参数:
includeBackups(可选):设置为true以包含每个服务器的备份信息
-
响应(无参数时):
[{"id": "server-id","name": "Server Name","alias": "Server Alias","note": "Additional notes about the server"}] -
响应(带
includeBackups=true时):[{"id": "server-id","name": "Server Name","backupName": "Backup Name","server_url": "http://localhost:8200","alias": "Server Alias","note": "Additional notes about the server","hasPassword": true}] -
错误响应:
401:未授权 - 无效会话或 CSRF 令牌500:获取服务器时服务器错误
-
备注:
- 返回服务器信息,包括别名和注释字段
- 当
includeBackups=true时,返回带有 URL 和密码状态的服务器-备份组合 - 合并了以前的
/api/servers-with-backups端点(已被移除) - 用于服务器选择、显示和配置目的
- 包含
hasPassword字段以指示服务器是否存储了密码
获取服务器详细信息 - /api/servers/:id
-
端点:
/api/servers/:id -
方法:GET
-
描述:检索特定服务器的信息。可以返回基本服务器信息或包含备份和图表数据的详细信息。
-
身份验证:需要有效的会话和 CSRF 令牌
-
参数:
id:服务器标识符
-
查询参数:
includeBackups(可选):设置为true以包含备份数据includeChartData(可选):设置为true以包含图表数据
-
响应(无参数时):
{"id": "server-id","name": "Server Name","alias": "Server Alias","note": "Additional notes about the server","server_url": "http://localhost:8200"} -
响应(带参数时):
{"id": "server-id","name": "Server Name","alias": "Server Alias","note": "Additional notes about the server","server_url": "http://localhost:8200","backups": [{ ... }],"chartData": [{ ... }]} -
错误响应:
401:未授权 - 无效会话或 CSRF 令牌404:找不到服务器500:获取服务器详细信息时服务器错误
-
备注:
- 在未提供查询参数时返回基本服务器信息
- 将
includeBackups或includeChartData中任一者设置为true时,返回包含备份和 chartData 的完整服务器数据 - 用于服务器设置和详细视图
更新服务器 - /api/servers/:id
-
端点:
/api/servers/:id -
方法:PATCH
-
描述:更新服务器详细信息,包括别名、注释和服务器 URL。
-
身份验证:需要有效的会话和 CSRF 令牌
-
参数:
id:服务器标识符
-
请求正文:
{"server_url": "http://localhost:8200","alias": "Server Alias","note": "Additional notes about the server"} -
响应:
{"message": "Server updated successfully","serverId": "server-id","server_url": "http://localhost:8200","alias": "Server Alias","note": "Additional notes about the server"} -
错误响应:
401:未授权 - 无效会话或 CSRF 令牌404:找不到服务器500:更新期间服务器错误
-
备注:
- 更新服务器别名、注释和服务器 URL
- 所有字段都是可选的
- 所有字段都允许使用空字符串
删除服务器 - /api/servers/:id
-
端点:
/api/servers/:id -
方法:DELETE
-
描述:删除服务器及其所有关联的备份。
-
身份验证:需要有效的会话和 CSRF 令牌
-
参数:
id:服务器标识符
-
响应:
{"message": "Successfully deleted server and 15 backups","status": 200,"changes": {"backupChanges": 15,"serverChanges": 1}} -
错误响应:
401:未授权 - 会话或 CSRF 令牌无效404:找不到服务器500:删除期间服务器错误
-
备注:
- 此操作不可逆
- 与服务器关联的所有备份数据将被永久删除
- 服务器记录本身也将被移除
- 返回已删除的备份和服务器数量
获取包含过期信息的服务器数据 - /api/detail/:serverId
-
端点:
/api/detail/:serverId -
方法:GET
-
描述:检索详细的服务器信息,包括过期备份状态。
-
参数:
serverId:服务器标识符
-
响应:
{"server": {"id": "server-id","name": "Server Name","backups": [...]},"overdueBackups": [{"serverName": "Server Name","backupName": "Backup Name","lastBackupDate": "2024-03-20T10:00:00Z","lastNotificationSent": "2024-03-20T12:00:00Z","notificationEvent": "all","expectedBackupDate": "2024-03-21T10:00:00Z","expectedBackupElapsed": "2 hours ago"}],"lastOverdueCheck": "2024-03-20T12:00:00Z"} -
错误响应:
404:找不到服务器500:获取服务器详细信息时服务器错误
-
备注:
- 返回包含过期备份信息的服务器数据
- 包含过期备份详情和时间戳
- 用于过期备份管理和监控
获取重复服务器 - /api/servers/duplicates
-
端点:
/api/servers/duplicates -
方法:GET
-
描述:根据机器 ID 检索重复服务器列表。重复服务器是指共享相同机器 ID 但在数据库中存储为单独记录的服务器。
-
认证:需要有效会话、CSRF 令牌和管理员访问权限
-
响应:
[{"machineId": "machine-id-123","servers": [{"id": "server-id-1","name": "Server Name 1","alias": "Server Alias 1","server_url": "http://localhost:8200","backupCount": 5},{"id": "server-id-2","name": "Server Name 2","alias": "Server Alias 2","server_url": "http://localhost:8200","backupCount": 3}]}] -
错误响应:
401:未授权 - 会话或 CSRF 令牌无效403:需要管理员访问权限500:获取重复服务器时服务器错误
-
备注:
- 仅管理员可访问此端点
- 返回共享相同机器 ID 的服务器组
- 每个组包含具有相同机器 ID 的所有服务器
- 用于识别和合并重复的服务器记录
- 包含每个重复项的服务器详细信息和备份计数
合并服务器 - /api/servers/merge
-
端点:
/api/servers/merge -
方法:POST
-
描述:将多个服务器合并到目标服务器。源服务器的所有备份都将转移到目标服务器,并删除源服务器。
-
认证:需要有效会话、CSRF 令牌和管理员访问权限
-
请求体:
{"oldServerIds": ["server-id-1", "server-id-2"],"targetServerId": "server-id-3"} -
响应:
{"success": true,"message": "Successfully merged 2 server(s) into target server","backupIdsNormalized": 1} -
错误响应:
400:请求体无效、缺少必需字段或目标服务器在要合并的服务器列表中401:未授权 - 会话或 CSRF 令牌无效403:需要管理员访问权限500:合并操作期间服务器错误
-
备注:
- 仅管理员可执行合并操作
- 目标服务器不得在要合并的服务器列表中
- 源服务器的所有备份都将转移到目标服务器
- 合并服务器上同一
backup_name的重复backup_id值将规范化为最新备份行中的 ID - 成功合并后删除源服务器
- 此操作不可逆
- 用于整合重复的服务器记录
- 验证 oldServerIds 是非空数组
- 验证提供了 targetServerId 并且是字符串