Files
yunrui_asset/docs/api/README.md
T
yi e9bff9beb3
Build and Push Docker Images / Build Backend Image (push) Has been cancelled
Build and Push Docker Images / Build Frontend Image (push) Has been cancelled
Build and Push Docker Images / Notify Build Complete (push) Has been cancelled
Update 2026-06-23 10:40:10
2026-06-23 10:40:10 +08:00

54 KiB
Raw Blame History

API接口文档

本文档描述云睿资产管理系统的后端API接口,遵循RESTful设计规范。


目录


基础信息

项目
Base URL http://localhost:8000/api
Content-Type application/json
认证方式 Bearer Token (JWT)

通用请求头

Content-Type: application/json
Authorization: Bearer <token>

通用响应格式

成功响应

{
  "success": true,
  "data": {...},
  "message": "操作成功"
}

错误响应

{
  "success": false,
  "error": "错误信息",
  "message": "详细描述"
}

分页参数

列表接口支持以下分页参数:

参数名 类型 必填 默认值 描述
page number 1 页码
pageSize number 10 每页数量

分页响应示例:

{
  "success": true,
  "data": {
    "list": [...],
    "total": 100,
    "page": 1,
    "pageSize": 10,
    "totalPages": 10
  },
  "message": "操作成功"
}

认证接口

用户登录

POST /api/auth/login

请求参数:

参数名 类型 必填 描述
username string 用户名
password string 密码

请求示例:

{
  "username": "admin",
  "password": "password123"
}

响应示例:

{
  "success": true,
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "user": {
      "userId": "user001",
      "username": "admin",
      "email": "admin@example.com",
      "phone": "13800138000",
      "status": "active",
      "Roles": [
        {
          "roleId": "role001",
          "roleName": "管理员"
        }
      ]
    }
  },
  "message": "登录成功"
}

用户注册

POST /api/auth/register

请求参数:

参数名 类型 必填 描述
username string 用户名(3-20字符)
password string 密码(6-20字符)
email string 邮箱
phone string 电话

请求示例:

{
  "username": "newuser",
  "password": "password123",
  "email": "user@example.com",
  "phone": "13800138000"
}

获取当前用户信息

GET /api/auth/me

响应示例:

{
  "success": true,
  "data": {
    "userId": "user001",
    "username": "admin",
    "email": "admin@example.com",
    "Roles": [...]
  },
  "message": "操作成功"
}

机房管理接口

获取机房列表

GET /api/rooms

查询参数:

参数名 类型 描述
keyword string 按名称搜索
status string 按状态筛选

响应示例:

{
  "roomId": "room001",
  "name": "A区机房",
  "location": "一楼东侧",
  "area": 500,
  "description": "主要服务器机房",
  "status": "active",
  "createdAt": "2024-01-01T00:00:00.000Z",
  "updatedAt": "2024-01-01T00:00:00.000Z"
}

获取单个机房

GET /api/rooms/:roomId

创建机房

POST /api/rooms

请求参数:

参数名 类型 必填 描述
roomId string 机房ID(唯一标识)
name string 机房名称
location string 机房位置
area number 面积(平方米)
description string 描述
status string 状态(active/inactive

请求示例:

{
  "roomId": "room002",
  "name": "B区机房",
  "location": "二楼西侧",
  "area": 600,
  "description": "网络设备机房",
  "status": "active"
}

更新机房

PUT /api/rooms/:roomId

请求参数: 同创建机房(roomId除外)

删除机房

DELETE /api/rooms/:roomId

说明: 删除机房前需确保机房下无机柜


机柜管理接口

获取机柜列表

GET /api/racks

查询参数:

参数名 类型 描述
roomId string 按机房ID筛选
status string 按状态筛选
keyword string 按名称搜索
page number 页码
pageSize number 每页数量

响应示例:

{
  "racks": [
    {
      "rackId": "rack001",
      "name": "机柜A1",
      "height": 42,
      "maxPower": 5000,
      "currentPower": 1200,
      "roomId": "room001",
      "Room": {
        "roomId": "room001",
        "name": "A区机房"
      },
      "Devices": [],
      "status": "active",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "total": 100
}

获取单个机柜

GET /api/racks/:rackId

创建机柜

POST /api/racks

请求参数:

参数名 类型 必填 描述
rackId string 机柜ID(留空自动生成)
name string 机柜名称
height number 高度(U),默认42
maxPower number 额定功率(W)
roomId string 所属机房ID
status string 状态(active/maintenance/inactive
description string 描述

请求示例:

{
  "name": "机柜A2",
  "height": 42,
  "maxPower": 5000,
  "roomId": "room001",
  "status": "active",
  "description": "核心交换机机柜"
}

更新机柜

PUT /api/racks/:rackId

删除机柜

DELETE /api/racks/:rackId

说明: 删除机柜前需确保机柜下无设备

获取机柜导入模板

GET /api/racks/import-template

响应: 返回Excel模板文件

导出机柜数据

GET /api/racks/export

响应: 返回Excel文件

导入机柜数据

POST /api/racks/import

Content-Type: multipart/form-data

请求参数:

参数名 类型 必填 描述
file File Excel格式的机柜数据文件

设备管理接口

获取设备列表

GET /api/devices

查询参数:

参数名 类型 描述
rackId string 按机柜ID筛选
type string 按设备类型筛选
status string 按状态筛选
keyword string 按名称/IP/序列号搜索
page number 页码,默认1
pageSize number 每页数量,默认10

响应示例:

{
  "devices": [
    {
      "deviceId": "dev001",
      "name": "Web服务器01",
      "type": "server",
      "model": "R740",
      "serialNumber": "SN123456",
      "rackId": "rack001",
      "position": 1,
      "height": 2,
      "powerConsumption": 500,
      "ipAddress": "192.168.1.100",
      "status": "running",
      "purchaseDate": "2023-01-01",
      "warrantyExpiry": "2026-01-01",
      "description": "主要Web应用服务器",
      "Rack": {
        "rackId": "rack001",
        "name": "机柜A1",
        "Room": {
          "roomId": "room001",
          "name": "A区机房"
        }
      },
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "total": 100,
  "page": 1,
  "pageSize": 10
}

获取单个设备

GET /api/devices/:deviceId

创建设备

POST /api/devices

请求参数:

参数名 类型 必填 描述
deviceId string 设备ID(留空自动生成)
name string 设备名称
type string 设备类型(server/switch/router/storage/other
model string 型号
serialNumber string 序列号
rackId string 所属机柜ID
position number 机柜位置(从1开始)
height number 占用高度(U)
powerConsumption number 功耗(W)
ipAddress string IP地址
status string 状态(running/maintenance/offline/fault
purchaseDate string 购买日期(YYYY-MM-DD
warrantyExpiry string 保修到期日期(YYYY-MM-DD
description string 描述
customFields object 自定义字段值

请求示例:

{
  "name": "数据库服务器",
  "type": "server",
  "model": "DL380",
  "serialNumber": "SN789012",
  "rackId": "rack001",
  "position": 3,
  "height": 2,
  "powerConsumption": 600,
  "ipAddress": "192.168.1.101",
  "status": "running",
  "customFields": {
    "cpuModel": "Intel Xeon E5-2680",
    "memorySize": "64GB"
  }
}

更新设备

PUT /api/devices/:deviceId

删除设备

DELETE /api/devices/:deviceId

批量删除设备

DELETE /api/devices/batch-delete

请求参数:

参数名 类型 必填 描述
deviceIds array 设备ID列表

请求示例:

{
  "deviceIds": ["dev001", "dev002", "dev003"]
}

删除所有设备

DELETE /api/devices/delete-all

批量上线设备

PUT /api/devices/batch-online

请求参数:

参数名 类型 必填 描述
deviceIds array 设备ID列表

批量下线设备

PUT /api/devices/batch-offline

请求参数:

参数名 类型 必填 描述
deviceIds array 设备ID列表

批量变更设备状态

PUT /api/devices/batch-status

请求参数:

参数名 类型 必填 描述
deviceIds array 设备ID列表
status string 目标状态(running/maintenance/offline/fault

批量移动设备

PUT /api/devices/batch-move

请求参数:

参数名 类型 必填 描述
deviceIds array 设备ID列表
targetRackId string 目标机柜ID
startPosition number 起始位置

获取设备导入模板

GET /api/devices/import-template

响应: 返回CSV模板文件

导出设备数据

GET /api/devices/export

查询参数:

参数名 类型 描述
deviceIds string/array 指定导出的设备ID

响应: 返回CSV文件

导入设备数据

POST /api/devices/import

Content-Type: multipart/form-data

请求参数:

参数名 类型 必填 描述
csvFile File CSV格式的设备数据文件

增强导出设备数据

POST /api/devices/enhanced-export

请求体参数:

参数名 类型 描述
deviceIds array 指定导出的设备ID列表(与filters二选一)
format string 导出格式(csv/json),默认csv
filters object 筛选条件(导出全部设备时使用)
filters.keyword string 搜索关键词
filters.status string 设备状态筛选
filters.type string 设备类型筛选
filters.roomId string 机房ID筛选
filters.rackId string 机柜ID筛选

获取设备的工单列表

GET /api/devices/:deviceId/tickets

查询参数:

参数名 类型 描述
status string 按状态筛选
page number 页码
pageSize number 每页数量

设备字段接口

获取设备字段列表

GET /api/deviceFields

响应示例:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "fieldName": "cpuModel",
      "displayName": "CPU型号",
      "fieldType": "string",
      "required": false,
      "defaultValue": "",
      "options": null,
      "order": 1,
      "isSystem": false,
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "message": "操作成功"
}

创建设备字段

POST /api/deviceFields

请求参数:

参数名 类型 必填 描述
fieldName string 字段名(英文,唯一)
displayName string 显示名称(中文)
fieldType string 字段类型(string/number/date/select/boolean/textarea
required boolean 是否必填,默认false
defaultValue string 默认值
options array 选项(select类型使用)
order number 排序顺序
visible boolean 是否可见,默认true

更新设备字段

PUT /api/deviceFields/:id

删除设备字段

DELETE /api/deviceFields/:id

说明: 系统字段(isSystem=true)不可删除


设备端口接口

获取端口列表

GET /api/device-ports

查询参数:

参数名 类型 描述
deviceId string 按设备ID筛选
status string 按状态筛选(free/occupied/fault
portType string 按端口类型筛选
portSpeed string 按端口速率筛选
page number 页码
pageSize number 每页数量

获取设备的所有端口

GET /api/device-ports/device/:deviceId

获取单个端口详情

GET /api/device-ports/:portId

创建端口

POST /api/device-ports

请求参数:

参数名 类型 必填 描述
portId string 端口ID(留空自动生成)
deviceId string 所属设备ID
nicId string 所属网卡ID
portName string 端口名称
portType string 端口类型(RJ45/SFP/SFP+/QSFP等),默认RJ45
portSpeed string 速率(10M/100M/1G/10G/25G/40G/100G),默认1G
status string 状态(free/occupied/fault),默认free
vlanId string VLAN ID
description string 描述

批量创建端口

POST /api/device-ports/batch

请求参数:

参数名 类型 必填 描述
ports array 端口数据列表

更新端口

PUT /api/device-ports/:portId

删除端口

DELETE /api/device-ports/:portId

批量删除端口

DELETE /api/device-ports/batch

请求参数:

参数名 类型 必填 描述
portIds array 端口ID列表

网卡接口

获取网卡列表

GET /api/network-cards

查询参数:

参数名 类型 描述
deviceId string 按设备ID筛选

获取设备的所有网卡

GET /api/network-cards/device/:deviceId

获取设备的网卡及端口信息

GET /api/network-cards/device/:deviceId/with-ports

获取单个网卡详情

GET /api/network-cards/:nicId

获取网卡的端口列表

GET /api/network-cards/:nicId/ports

创建网卡

POST /api/network-cards

请求参数:

参数名 类型 必填 描述
nicId string 网卡ID(留空自动生成)
deviceId string 所属设备ID
name string 网卡名称
description string 描述
slotNumber number 插槽号
model string 型号
manufacturer string 厂商
status string 状态(normal/fault),默认normal

更新网卡

PUT /api/network-cards/:nicId

删除网卡

DELETE /api/network-cards/:nicId

说明: 删除网卡前需确保网卡下无端口


线缆接口

获取线缆列表

GET /api/cables

查询参数:

参数名 类型 描述
sourceDeviceId string 按源设备筛选
targetDeviceId string 按目标设备筛选
status string 按状态筛选
cableType string 按线缆类型筛选
page number 页码
pageSize number 每页数量

获取设备的所有接线

GET /api/cables/device/:deviceId

获取机柜内所有设备的接线

GET /api/cables/rack/:rackId

检查接线冲突

POST /api/cables/check-conflict

请求参数:

参数名 类型 必填 描述
sourceDeviceId string 源设备ID
sourcePort string 源端口名称
targetDeviceId string 目标设备ID
targetPort string 目标端口名称
excludeCableId string 排除的线缆ID(用于编辑时)

获取单个线缆详情

GET /api/cables/:cableId

创建线缆

POST /api/cables

请求参数:

参数名 类型 必填 描述
cableId string 线缆ID(留空自动生成)
sourceDeviceId string 源设备ID
sourcePort string 源端口名称
targetDeviceId string 目标设备ID
targetPort string 目标端口名称
cableType string 线缆类型(ethernet/fiber/optical等),默认ethernet
cableLength number 长度(米)
status string 状态(normal/fault),默认normal
description string 描述
force boolean 是否强制创建(覆盖已有连接)

批量创建线缆

POST /api/cables/batch

请求参数:

参数名 类型 必填 描述
cables array 线缆数据列表

更新线缆

PUT /api/cables/:cableId

删除线缆

DELETE /api/cables/:cableId

批量删除线缆

DELETE /api/cables/batch

请求参数:

参数名 类型 必填 描述
cableIds array 线缆ID列表

工单管理接口

获取工单列表

GET /api/tickets

查询参数:

参数名 类型 描述
status string 按状态筛选(pending/in_progress/completed/closed
priority string 按优先级筛选(urgent/high/medium/low
faultCategory string 按故障分类筛选
deviceId string 按设备筛选
reporterId string 按报修人筛选
startDate string 开始日期
endDate string 结束日期
keyword string 关键词搜索
page number 页码
pageSize number 每页数量

响应示例:

{
  "total": 50,
  "tickets": [
    {
      "ticketId": "TKT001",
      "title": "服务器故障",
      "description": "Web服务器无法访问",
      "status": "in_progress",
      "priority": "high",
      "faultCategory": "硬件故障",
      "deviceId": "dev001",
      "deviceName": "Web服务器01",
      "serialNumber": "SN123456",
      "reporterId": "user001",
      "reporterName": "张三",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "page": 1,
  "pageSize": 10
}

获取工单统计

GET /api/tickets/stats

查询参数:

参数名 类型 描述
startDate string 开始日期
endDate string 结束日期

获取单个工单详情

GET /api/tickets/:ticketId

创建工单

POST /api/tickets

请求参数:

参数名 类型 必填 描述
deviceId string 关联设备ID(与deviceName+serialNumber二选一)
deviceName string 设备名称(手动输入时)
serialNumber string 序列号(手动输入时)
title string 工单标题
faultCategory string 故障分类
faultSubCategory string 故障子分类
priority string 优先级(urgent/high/medium/low),默认medium
description string 问题描述
expectedCompletionDate string 期望完成日期
reporterId string 报修人ID
reporterName string 报修人姓名
attachments array 附件列表
tags array 标签列表

更新工单

PUT /api/tickets/:ticketId

更新工单状态

PUT /api/tickets/:ticketId/status

请求参数:

参数名 类型 必填 描述
status string 目标状态
resolution string 解决方案(完成时填写)
operatorId string 操作人ID
operatorName string 操作人姓名
operatorRole string 操作人角色

处理工单

PUT /api/tickets/:ticketId/process

请求参数:

参数名 类型 必填 描述
solution string 解决方案
result string 处理结果(resolved/unresolved
notes string 备注
usedParts string 使用配件
operatorId string 操作人ID
operatorName string 操作人姓名

添加工单操作记录

POST /api/tickets/:ticketId/operations

请求参数:

参数名 类型 必填 描述
operationType string 操作类型
operationDescription string 操作描述
operationSteps array 操作步骤
spareParts array 使用配件
duration number 耗时(分钟)
result string 结果
notes string 备注
operatorId string 操作人ID
operatorName string 操作人姓名
operatorRole string 操作人角色

获取工单操作记录

GET /api/tickets/:ticketId/operations

删除工单

DELETE /api/tickets/:ticketId

评价工单

POST /api/tickets/:ticketId/evaluate

请求参数:

参数名 类型 必填 描述
evaluation string 评价内容
evaluationRating number 评分(1-5)
operatorId string 操作人ID
operatorName string 操作人姓名

工单分类接口

获取分类列表

GET /api/ticket-categories

创建分类

POST /api/ticket-categories

请求参数:

参数名 类型 必填 描述
categoryId string 分类ID(唯一标识)
name string 分类名称
description string 描述
sortOrder number 排序顺序

更新分类

PUT /api/ticket-categories/:id

删除分类

DELETE /api/ticket-categories/:id

工单字段接口

获取字段列表

GET /api/ticket-fields

创建字段

POST /api/ticket-fields

请求参数:

参数名 类型 必填 描述
fieldName string 字段名(英文,唯一)
displayName string 显示名称(中文)
fieldType string 字段类型(text/number/date/select/textarea
isRequired boolean 是否必填
defaultValue string 默认值
options string 选项(逗号分隔)
sortOrder number 排序顺序

更新字段

PUT /api/ticket-fields/:id

删除字段

DELETE /api/ticket-fields/:id

耗材管理接口

获取耗材列表

GET /api/consumables

查询参数:

参数名 类型 描述
category string 按分类筛选
status string 按状态筛选
keyword string 按名称搜索
page number 页码
pageSize number 每页数量

响应示例:

{
  "total": 100,
  "consumables": [
    {
      "consumableId": "cons001",
      "name": "硬盘",
      "category": "存储设备",
      "specification": "1TB SSD",
      "unit": "个",
      "currentStock": 100,
      "minStock": 10,
      "maxStock": 200,
      "unitPrice": 500,
      "supplier": "供应商A",
      "location": "仓库1",
      "status": "active",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "page": 1,
  "pageSize": 10
}

获取单个耗材

GET /api/consumables/:id

创建耗材

POST /api/consumables

请求参数:

参数名 类型 必填 描述
consumableId string 耗材ID(留空自动生成)
name string 耗材名称
category string 分类
specification string 规格
unit string 单位
currentStock number 当前库存,默认0
minStock number 最低库存预警值
maxStock number 最高库存值
unitPrice number 单价
supplier string 供应商
location string 存放位置
status string 状态(active/inactive),默认active
description string 描述

更新耗材

PUT /api/consumables/:id

删除耗材

DELETE /api/consumables/:id

导入耗材

POST /api/consumables/import

请求参数:

参数名 类型 必填 描述
items array 耗材数据列表
operator string 操作人

获取耗材分类列表

GET /api/consumables/categories/list

获取低库存耗材

GET /api/consumables/low-stock

获取耗材统计汇总

GET /api/consumables/statistics/summary

获取出入库记录

GET /api/consumables/inout/records

查询参数:

参数名 类型 描述
page number 页码
pageSize number 每页数量

快速出入库

POST /api/consumables/quick-inout

请求参数:

参数名 类型 必填 描述
consumableId string 耗材ID
type string 类型(in/out
quantity number 数量
operator string 操作人
reason string 原因
notes string 备注
snList array SN列表

出入库操作

POST /api/consumables/inout

请求参数:

参数名 类型 必填 描述
consumableId string 耗材ID
type string 类型(in/out
quantity number 数量
operator string 操作人
reason string 原因
recipient string 领用人
notes string 备注
snList array SN列表

库存调整

POST /api/consumables/adjust

请求参数:

参数名 类型 必填 描述
consumableId string 耗材ID
adjustType string 调整类型(add/subtract/set
quantity number 数量
operator string 操作人
reason string 原因
notes string 备注

获取耗材操作日志

GET /api/consumables/logs

查询参数:

参数名 类型 描述
consumableId string 按耗材筛选
operationType string 按操作类型筛选(多个用逗号分隔)
startDate string 开始日期
endDate string 结束日期
page number 页码
pageSize number 每页数量

导出耗材日志

GET /api/consumables/logs/export

查询参数:

参数名 类型 描述
consumableId string 按耗材筛选
operationType string 按操作类型筛选
startDate string 开始日期
endDate string 结束日期

导入耗材日志

POST /api/consumables/logs/import

请求参数:

参数名 类型 必填 描述
logs array 日志数据列表
operator string 操作人

修改日志记录

PUT /api/consumables/logs/:id

请求参数:

参数名 类型 必填 描述
reason string 原因
notes string 备注
operator string 操作人
modificationReason string 修改原因

获取日志修改历史

GET /api/consumables/logs/:id/history

获取归档记录列表

GET /api/consumables/archives

查询参数:

参数名 类型 描述
keyword string 关键词搜索
page number 页码
pageSize number 每页数量

获取归档记录详情

GET /api/consumables/archives/:archiveId

根据SN查询耗材

GET /api/consumables/by-sn/:sn

耗材分类接口

获取分类列表

GET /api/consumable-categories

创建分类

POST /api/consumable-categories

请求参数:

参数名 类型 必填 描述
categoryId string 分类ID(唯一标识)
name string 分类名称
description string 描述

更新分类

PUT /api/consumable-categories/:id

删除分类

DELETE /api/consumable-categories/:id

耗材记录接口

获取领用记录列表

GET /api/consumable-records

查询参数:

参数名 类型 描述
consumableId string 按耗材筛选
userId string 按用户筛选
type string 按类型筛选(领用/归还/报废)
startDate string 开始日期
endDate string 结束日期

创建领用记录

POST /api/consumable-records

请求参数:

参数名 类型 必填 描述
consumableId string 耗材ID
quantity number 数量
type string 类型(领用/归还/报废)
userId string 用户ID
deviceId string 关联设备ID
description string 说明

用户管理接口

获取用户列表

GET /api/users

查询参数:

参数名 类型 描述
username string 按用户名搜索
realName string 按姓名搜索
status string 按状态筛选
page number 页码
pageSize number 每页数量

响应示例:

{
  "success": true,
  "data": {
    "total": 50,
    "page": 1,
    "pageSize": 10,
    "users": [
      {
        "userId": "user001",
        "username": "admin",
        "email": "admin@example.com",
        "phone": "13800138000",
        "realName": "管理员",
        "status": "active",
        "roles": [
          {
            "roleId": "role001",
            "roleName": "管理员",
            "roleCode": "admin"
          }
        ],
        "createdAt": "2024-01-01T00:00:00.000Z",
        "updatedAt": "2024-01-01T00:00:00.000Z"
      }
    ]
  }
}

获取所有用户(简要信息)

GET /api/users/all

获取单个用户

GET /api/users/:userId

创建用户

POST /api/users

请求参数:

参数名 类型 必填 描述
username string 用户名
password string 密码
email string 邮箱
phone string 电话
realName string 真实姓名
status string 状态(active/inactive/pending),默认active
roleIds array 角色ID列表
remark string 备注

更新用户

PUT /api/users/:userId

请求参数:

参数名 类型 必填 描述
username string 用户名
email string 邮箱
phone string 电话
realName string 真实姓名
status string 状态
roleIds array 角色ID列表
remark string 备注
newPassword string 新密码

删除用户

DELETE /api/users/:userId

重置密码

PUT /api/users/:userId/password

请求参数:

参数名 类型 必填 描述
newPassword string 新密码

上传头像

POST /api/users/:userId/avatar

Content-Type: multipart/form-data

请求参数:

参数名 类型 必填 描述
avatar File 头像图片文件(JPG/PNG/GIF/WebP

删除头像

DELETE /api/users/:userId/avatar

审核通过用户

PUT /api/users/:userId/approve

拒绝用户注册

PUT /api/users/:userId/reject

角色管理接口

获取角色列表

GET /api/roles

响应示例:

{
  "success": true,
  "data": [
    {
      "roleId": "role001",
      "roleName": "管理员",
      "roleCode": "admin",
      "description": "系统管理员,拥有所有权限",
      "status": "active",
      "Permissions": [
        {
          "permissionId": "perm001",
          "permissionName": "设备管理"
        }
      ],
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "message": "操作成功"
}

创建角色

POST /api/roles

请求参数:

参数名 类型 必填 描述
roleId string 角色ID(唯一标识)
roleName string 角色名称
roleCode string 角色代码
description string 描述
permissionIds array 权限ID列表

更新角色

PUT /api/roles/:roleId

删除角色

DELETE /api/roles/:roleId

系统设置接口

获取系统设置

GET /api/system-settings

响应示例:

{
  "success": true,
  "data": {
    "siteName": "云睿资产管理系统",
    "siteLogo": "/uploads/logo.png",
    "siteDescription": "专业的数据中心设备管理平台",
    "copyright": "© 2024 YunRui Asset Management",
    "version": "1.0.0"
  },
  "message": "操作成功"
}

更新系统设置

PUT /api/system-settings

请求参数:

参数名 类型 必填 描述
siteName string 站点名称
siteLogo string 站点Logo路径
siteDescription string 站点描述
copyright string 版权信息

背景配置接口

获取背景配置

GET /api/background

响应示例:

{
  "success": true,
  "data": {
    "loginBackground": "/uploads/bg/login.jpg",
    "dashboardBackground": "/uploads/bg/dashboard.jpg",
    "primaryColor": "#1890ff"
  },
  "message": "操作成功"
}

更新背景配置

PUT /api/background

请求参数:

参数名 类型 必填 描述
loginBackground string 登录页背景图
dashboardBackground string 仪表盘背景图
primaryColor string 主题主色

盘点管理接口

获取盘点计划列表

GET /api/inventory/plans

查询参数:

参数名 类型 描述
status string 按状态筛选(draft/pending/in_progress/completed
keyword string 关键词搜索
page number 页码
pageSize number 每页数量

获取单个盘点计划

GET /api/inventory/plans/:planId

创建盘点计划

POST /api/inventory/plans

请求参数:

参数名 类型 必填 描述
name string 计划名称
type string 盘点类型(full/partial),默认full
description string 描述
scheduledDate string 计划执行日期
targetRooms array 目标机房ID列表
targetRacks array 目标机柜ID列表

更新盘点计划

PUT /api/inventory/plans/:planId

删除盘点计划

DELETE /api/inventory/plans/:planId

启动盘点计划

POST /api/inventory/plans/:planId/start

完成盘点计划

POST /api/inventory/plans/:planId/complete

获取盘点任务详情

GET /api/inventory/tasks/:taskId

更新盘点任务

PUT /api/inventory/tasks/:taskId

请求参数:

参数名 类型 必填 描述
assignedTo string 指派人员ID
status string 任务状态

盘点记录核查

POST /api/inventory/records/:recordId/check

请求参数:

参数名 类型 必填 描述
actualSerialNumber string 实际序列号
actualRackId string 实际机柜ID
actualPosition number 实际位置
status string 核查状态(normal/abnormal/not_found
remark string 备注
photoUrl string 照片URL

获取盘点记录列表

GET /api/inventory/records

查询参数:

参数名 类型 描述
planId string 按计划筛选
taskId string 按任务筛选
status string 按状态筛选
page number 页码
pageSize number 每页数量

获取盘点统计

GET /api/inventory/stats/dashboard

快速添加设备(盘点时)

POST /api/inventory/quick-add-device

请求参数:

参数名 类型 必填 描述
planId string 盘点计划ID
taskId string 盘点任务ID
serialNumber string 序列号
name string 设备名称
type string 设备类型
roomId string 机房ID
rackId string 机柜ID
position number 位置
model string 型号
brand string 品牌
height number 高度(U)
powerConsumption number 功耗(W)
ipAddress string IP地址
purchaseDate string 购买日期
warrantyExpiry string 保修到期日期
description string 描述
remark string 备注

获取暂存设备列表

GET /api/inventory/pending-devices

查询参数:

参数名 类型 描述
status string 按状态筛选(pending/synced
planId string 按盘点计划筛选
roomId string 按机房筛选
keyword string 关键词搜索
page number 页码
pageSize number 每页数量

获取暂存设备统计

GET /api/inventory/pending-devices/stats

获取暂存设备详情

GET /api/inventory/pending-devices/:pendingId

更新暂存设备

PUT /api/inventory/pending-devices/:pendingId

删除暂存设备

DELETE /api/inventory/pending-devices/:pendingId

同步暂存设备到设备管理

POST /api/inventory/pending-devices/:pendingId/sync

批量同步暂存设备

POST /api/inventory/pending-devices/batch-sync

请求参数:

参数名 类型 必填 描述
pendingIds array 暂存设备ID列表

健康检查接口

服务状态检查

GET /health

响应示例:

{
  "status": "ok",
  "message": "云睿资产管理系统后端服务正常运行"
}

错误码说明

状态码 错误码 说明
400 BAD_REQUEST 请求参数错误
401 UNAUTHORIZED 未授权访问,Token无效或过期
403 FORBIDDEN 禁止访问,权限不足
404 NOT_FOUND 资源不存在
409 CONFLICT 资源冲突(如重复ID、端口占用)
422 VALIDATION_ERROR 数据验证失败
500 INTERNAL_ERROR 服务器内部错误
503 SERVICE_UNAVAILABLE 服务暂不可用

常见错误示例

认证失败:

{
  "success": false,
  "error": "UNAUTHORIZED",
  "message": "Token已过期,请重新登录"
}

参数错误:

{
  "success": false,
  "error": "VALIDATION_ERROR",
  "message": "设备ID不能为空"
}

资源不存在:

{
  "success": false,
  "error": "NOT_FOUND",
  "message": "设备不存在"
}

权限不足:

{
  "success": false,
  "error": "FORBIDDEN",
  "message": "您没有权限执行此操作"
}

资源冲突:

{
  "error": "端口已被占用",
  "conflict": true,
  "existingCable": {...}
}

接口汇总

接口路径 方法 描述
/api/auth/login POST 用户登录
/api/auth/register POST 用户注册
/api/auth/me GET 获取当前用户信息
/api/rooms GET/POST 机房列表/创建
/api/rooms/:roomId GET/PUT/DELETE 机房详情/更新/删除
/api/racks GET/POST 机柜列表/创建
/api/racks/:rackId GET/PUT/DELETE 机柜详情/更新/删除
/api/racks/import-template GET 获取机柜导入模板
/api/racks/export GET 导出机柜数据
/api/racks/import POST 导入机柜数据
/api/devices GET/POST 设备列表/创建
/api/devices/:deviceId GET/PUT/DELETE 设备详情/更新/删除
/api/devices/batch-delete DELETE 批量删除设备
/api/devices/delete-all DELETE 删除所有设备
/api/devices/batch-online PUT 批量上线设备
/api/devices/batch-offline PUT 批量下线设备
/api/devices/batch-status PUT 批量变更设备状态
/api/devices/batch-move PUT 批量移动设备
/api/devices/import-template GET 获取设备导入模板
/api/devices/export GET 导出设备数据
/api/devices/import POST 导入设备数据
/api/devices/enhanced-export POST 增强导出设备数据
/api/devices/:deviceId/tickets GET 获取设备的工单列表
/api/deviceFields GET/POST 设备字段列表/创建
/api/deviceFields/:id PUT/DELETE 设备字段更新/删除
/api/device-ports GET/POST 端口列表/创建
/api/device-ports/device/:deviceId GET 获取设备的所有端口
/api/device-ports/:portId GET/PUT/DELETE 端口详情/更新/删除
/api/device-ports/batch POST/DELETE 批量创建/删除端口
/api/network-cards GET/POST 网卡列表/创建
/api/network-cards/device/:deviceId GET 获取设备的所有网卡
/api/network-cards/device/:deviceId/with-ports GET 获取设备的网卡及端口信息
/api/network-cards/:nicId GET/PUT/DELETE 网卡详情/更新/删除
/api/network-cards/:nicId/ports GET 获取网卡的端口列表
/api/cables GET/POST 线缆列表/创建
/api/cables/device/:deviceId GET 获取设备的所有接线
/api/cables/rack/:rackId GET 获取机柜内所有设备的接线
/api/cables/check-conflict POST 检查接线冲突
/api/cables/:cableId GET/PUT/DELETE 线缆详情/更新/删除
/api/cables/batch POST/DELETE 批量创建/删除线缆
/api/tickets GET/POST 工单列表/创建
/api/tickets/stats GET 工单统计
/api/tickets/:ticketId GET/PUT/DELETE 工单详情/更新/删除
/api/tickets/:ticketId/status PUT 更新工单状态
/api/tickets/:ticketId/process PUT 处理工单
/api/tickets/:ticketId/operations GET/POST 工单操作记录/添加操作记录
/api/tickets/:ticketId/evaluate POST 评价工单
/api/ticket-categories GET/POST 工单分类列表/创建
/api/ticket-categories/:id PUT/DELETE 工单分类更新/删除
/api/ticket-fields GET/POST 工单字段列表/创建
/api/ticket-fields/:id PUT/DELETE 工单字段更新/删除
/api/consumables GET/POST 耗材列表/创建
/api/consumables/:id GET/PUT/DELETE 耗材详情/更新/删除
/api/consumables/import POST 导入耗材
/api/consumables/categories/list GET 获取耗材分类列表
/api/consumables/low-stock GET 获取低库存耗材
/api/consumables/statistics/summary GET 获取耗材统计汇总
/api/consumables/inout/records GET 获取出入库记录
/api/consumables/quick-inout POST 快速出入库
/api/consumables/inout POST 出入库操作
/api/consumables/adjust POST 库存调整
/api/consumables/logs GET 获取耗材操作日志
/api/consumables/logs/export GET 导出耗材日志
/api/consumables/logs/import POST 导入耗材日志
/api/consumables/logs/:id PUT 修改日志记录
/api/consumables/logs/:id/history GET 获取日志修改历史
/api/consumables/archives GET 获取归档记录列表
/api/consumables/archives/:archiveId GET 获取归档记录详情
/api/consumables/by-sn/:sn GET 根据SN查询耗材
/api/consumable-categories GET/POST 耗材分类列表/创建
/api/consumable-categories/:id PUT/DELETE 耗材分类更新/删除
/api/consumable-records GET/POST 耗材记录列表/创建
/api/users GET/POST 用户列表/创建
/api/users/all GET 获取所有用户(简要信息)
/api/users/:userId GET/PUT/DELETE 用户详情/更新/删除
/api/users/:userId/password PUT 重置密码
/api/users/:userId/avatar POST/DELETE 上传/删除头像
/api/users/:userId/approve PUT 审核通过用户
/api/users/:userId/reject PUT 拒绝用户注册
/api/roles GET/POST 角色列表/创建
/api/roles/:roleId PUT/DELETE 角色更新/删除
/api/system-settings GET/PUT 系统设置获取/更新
/api/background GET/PUT 背景配置获取/更新
/api/inventory/plans GET/POST 盘点计划列表/创建
/api/inventory/plans/:planId GET/PUT/DELETE 盘点计划详情/更新/删除
/api/inventory/plans/:planId/start POST 启动盘点计划
/api/inventory/plans/:planId/complete POST 完成盘点计划
/api/inventory/tasks/:taskId GET/PUT 盘点任务详情/更新
/api/inventory/records GET 盘点记录列表
/api/inventory/records/:recordId/check POST 盘点记录核查
/api/inventory/stats/dashboard GET 盘点统计
/api/inventory/quick-add-device POST 快速添加设备
/api/inventory/pending-devices GET 暂存设备列表
/api/inventory/pending-devices/stats GET 暂存设备统计
/api/inventory/pending-devices/:pendingId GET/PUT/DELETE 暂存设备详情/更新/删除
/api/inventory/pending-devices/:pendingId/sync POST 同步暂存设备
/api/inventory/pending-devices/batch-sync POST 批量同步暂存设备

空闲设备接口

获取空闲设备列表

GET /api/idle-devices

查询参数:

参数名 类型 描述
keyword string 关键词搜索
roomId string 按机房筛选
page number 页码
pageSize number 每页数量

添加空闲设备

POST /api/idle-devices

请求参数:

参数名 类型 必填 描述
deviceId string 设备ID

激活空闲设备

PUT /api/idle-devices/:deviceId/activate

删除空闲设备

DELETE /api/idle-devices/:deviceId

操作日志接口

获取操作日志列表

GET /api/operation-logs

查询参数:

参数名 类型 描述
module string 按模块筛选
operationType string 按操作类型筛选
startDate string 开始日期
endDate string 结束日期
operator string 按操作人筛选
keyword string 关键词搜索
page number 页码
pageSize number 每页数量

获取模块列表

GET /api/operation-logs/modules

获取操作类型列表

GET /api/operation-logs/types

获取操作日志统计

GET /api/operation-logs/statistics

查询参数:

参数名 类型 描述
startDate string 开始日期
endDate string 结束日期

获取操作日志详情

GET /api/operation-logs/:recordId

备份管理接口

创建备份

POST /api/backup

获取备份列表

GET /api/backup/list

验证备份文件

GET /api/backup/validate/:filename

获取恢复进度(SSE

GET /api/backup/restore-progress/:filename

说明: 返回 Server-Sent Events 流,实时推送恢复进度

恢复备份

POST /api/backup/restore

请求参数:

参数名 类型 必填 描述
filename string 备份文件名

上传备份文件

POST /api/backup/upload

Content-Type: multipart/form-data

下载备份文件

GET /api/backup/download/:filename

删除备份文件

DELETE /api/backup/:filename

获取备份信息

GET /api/backup/info

清理旧备份

POST /api/backup/clean

请求参数:

参数名 类型 必填 描述
keepCount number 保留的备份数量

获取自动备份状态

GET /api/backup/auto/status

更新自动备份设置

POST /api/backup/auto/settings

请求参数:

参数名 类型 必填 描述
enabled boolean 是否启用
cronExpression string Cron 表达式
keepCount number 保留数量

立即执行自动备份

POST /api/backup/auto/execute

测试 Cron 表达式

POST /api/backup/auto/test-cron

请求参数:

参数名 类型 必填 描述
cronExpression string Cron 表达式

获取远端备份目标列表

GET /api/backup/remote/targets

获取单个远端备份目标

GET /api/backup/remote/targets/:id

添加远端备份目标

POST /api/backup/remote/targets

请求参数:

参数名 类型 必填 描述
name string 目标名称
protocol string 协议(ftp/sftp/webdav/smb
host string 主机地址
port number 端口号
username string 用户名
password string 密码
remotePath string 远程目录

更新远端备份目标

PUT /api/backup/remote/targets/:id

删除远端备份目标

DELETE /api/backup/remote/targets/:id

测试远端连接

POST /api/backup/remote/test

测试指定远端连接

POST /api/backup/remote/targets/:id/test

获取远端备份设置

GET /api/backup/remote/settings

更新远端备份设置

PUT /api/backup/remote/settings

获取支持的协议列表

GET /api/backup/remote/protocols

手动上传备份到远端

POST /api/backup/remote/upload

请求参数:

参数名 类型 必填 描述
filename string 备份文件名
targetId string 远端目标ID

获取备份日志列表

GET /api/backup/logs

获取备份日志详情

GET /api/backup/logs/:id

清理旧备份日志

DELETE /api/backup/logs/clean

仓库管理接口

获取仓库列表

GET /api/warehouses

创建仓库

POST /api/warehouses

请求参数:

参数名 类型 必填 描述
name string 仓库名称
location string 仓库位置
description string 描述
manager string 负责人
contact string 联系方式

获取单个仓库

GET /api/warehouses/:warehouseId

更新仓库

PUT /api/warehouses/:warehouseId

删除仓库

DELETE /api/warehouses/:warehouseId

拓扑管理接口

获取交换机拓扑

GET /api/topology/switch/:switchId

响应示例:

{
  "success": true,
  "data": {
    "switch": {
      "deviceId": "dev001",
      "name": "核心交换机",
      "type": "switch"
    },
    "connections": [
      {
        "deviceId": "dev002",
        "name": "服务器01",
        "type": "server",
        "port": "eth0",
        "cableId": "cable001"
      }
    ]
  }
}

获取设备拓扑

GET /api/topology/device/:deviceId

健康检查接口

端点 方法 说明
/health GET 服务健康检查

文档版本: 2.0.0
最后更新: 2026年5月