Files
yunrui_asset/docs/api
zhang1106 de49c5ff52 feat(auth): 添加账户解锁功能
在登录页面增加账户解锁功能,当账户被锁定后可以通过输入正确凭证解锁
后端添加/auth/unlock接口处理解锁逻辑
前端添加解锁表单和状态切换
更新API文档和CHANGELOG记录新功能
2026-01-21 15:21:46 +08:00
..
2026-01-21 15:21:46 +08:00

API接口文档

本文档描述IDC设备管理系统的后端API接口,遵循OpenAPI 3.0规范。

基础信息

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

通用响应格式

成功响应

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

错误响应

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

认证接口

用户登录

POST /api/auth/login

请求参数

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

请求示例

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

响应示例

{
  "success": true,
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "user": {
      "userId": "user001",
      "username": "admin",
      "role": "admin"
    }
  },
  "message": "登录成功"
}

用户注册

POST /api/auth/register

机房管理接口

获取机房列表

GET /api/rooms

响应示例

{
  "success": true,
  "data": [
    {
      "roomId": "room001",
      "name": "A区机房",
      "location": "一楼东侧",
      "area": 500,
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "message": "操作成功"
}

创建机房

POST /api/rooms

请求参数

参数名 类型 必填 描述
roomId string 机房ID
name string 机房名称
location string 机房位置
area number 面积(平方米)

请求示例

{
  "roomId": "room002",
  "name": "B区机房",
  "location": "二楼西侧",
  "area": 600
}

更新机房

PUT /api/rooms/:roomId

删除机房

DELETE /api/rooms/:roomId

机柜管理接口

获取机柜列表

GET /api/racks

查询参数

参数名 类型 描述
roomId string 按机房ID筛选

响应示例

{
  "success": true,
  "data": [
    {
      "rackId": "rack001",
      "name": "机柜A1",
      "height": 42,
      "powerRating": 5000,
      "RoomId": "room001",
      "Room": {
        "roomId": "room001",
        "name": "A区机房"
      },
      "Devices": [],
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "message": "操作成功"
}

创建机柜

POST /api/racks

请求参数

参数名 类型 必填 描述
rackId string 机柜ID
name string 机柜名称
height number 高度(U)
powerRating number 额定功率(W)
RoomId string 所属机房ID

请求示例

{
  "rackId": "rack002",
  "name": "机柜A2",
  "height": 42,
  "powerRating": 5000,
  "RoomId": "room001"
}

更新机柜

PUT /api/racks/:rackId

删除机柜

DELETE /api/racks/:rackId

获取机柜详情

GET /api/racks/:rackId

设备管理接口

获取设备列表

GET /api/devices

查询参数

参数名 类型 描述
rackId string 按机柜ID筛选
deviceType string 按设备类型筛选
page number 页码,默认1
pageSize number 每页数量,默认10

响应示例

{
  "success": true,
  "data": {
    "devices": [
      {
        "deviceId": "dev001",
        "name": "Web服务器01",
        "deviceType": "服务器",
        "manufacturer": "Dell",
        "model": "R740",
        "rackPosition": 1,
        "height": 2,
        "ipAddress": "192.168.1.100",
        "macAddress": "00:1B:44:11:3A:B7",
        "status": "运行中",
        "purchaseDate": "2023-01-01",
        "warrantyDate": "2026-01-01",
        "description": "主要Web应用服务器",
        "RackId": "rack001",
        "Rack": {
          "rackId": "rack001",
          "name": "机柜A1"
        },
        "createdAt": "2024-01-01T00:00:00.000Z",
        "updatedAt": "2024-01-01T00:00:00.000Z"
      }
    ],
    "total": 100,
    "page": 1,
    "pageSize": 10
  },
  "message": "操作成功"
}

创建设备

POST /api/devices

请求参数

参数名 类型 必填 描述
deviceId string 设备ID
name string 设备名称
deviceType string 设备类型
manufacturer string 厂商
model string 型号
RackId string 所属机柜ID
rackPosition number 机柜位置
height number 占用高度(U)
ipAddress string IP地址
macAddress string MAC地址
status string 状态
purchaseDate string 购买日期
warrantyDate string 保修日期
description string 描述

请求示例

{
  "deviceId": "dev002",
  "name": "数据库服务器",
  "deviceType": "服务器",
  "manufacturer": "HP",
  "model": "DL380",
  "RackId": "rack001",
  "rackPosition": 3,
  "height": 2,
  "ipAddress": "192.168.1.101",
  "status": "运行中"
}

更新设备

PUT /api/devices/:deviceId

删除设备

DELETE /api/devices/:deviceId

批量导入设备

POST /api/devices/batch-import

Content-Type: multipart/form-data

请求参数

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

设备字段管理接口

获取设备字段列表

GET /api/deviceFields

响应示例

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

创建设备字段

POST /api/deviceFields

请求参数

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

请求示例

{
  "fieldName": "cpuModel",
  "displayName": "CPU型号",
  "fieldType": "text",
  "isRequired": false,
  "defaultValue": ""
}

更新设备字段

PUT /api/deviceFields/:id

删除设备字段

DELETE /api/deviceFields/:id

工单管理接口

获取工单列表

GET /api/tickets

查询参数

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

响应示例

{
  "success": true,
  "data": {
    "tickets": [
      {
        "ticketId": "ticket001",
        "title": "服务器故障",
        "description": "Web服务器无法访问",
        "status": "处理中",
        "priority": "高",
        "categoryId": "cat001",
        "assigneeId": "user001",
        "requesterId": "user002",
        "createdAt": "2024-01-01T00:00:00.000Z",
        "updatedAt": "2024-01-01T00:00:00.000Z"
      }
    ],
    "total": 50,
    "page": 1,
    "pageSize": 10
  },
  "message": "操作成功"
}

创建工单

POST /api/tickets

请求参数

参数名 类型 必填 描述
title string 工单标题
description string 工单描述
categoryId string 工单分类ID
priority string 优先级(高/中/低)
assigneeId string 指派用户ID

更新工单

PUT /api/tickets/:ticketId

删除工单

DELETE /api/tickets/:ticketId

工单分类管理接口

获取工单分类列表

GET /api/ticketCategories

创建工单分类

POST /api/ticketCategories

更新工单分类

PUT /api/ticketCategories/:categoryId

删除工单分类

DELETE /api/ticketCategories/:categoryId

工单字段管理接口

获取工单字段列表

GET /api/ticketFields

创建设单字段

POST /api/ticketFields

更新工单字段

PUT /api/ticketFields/:id

删除工单字段

DELETE /api/ticketFields/:id

耗材管理接口

获取耗材列表

GET /api/consumables

响应示例

{
  "success": true,
  "data": [
    {
      "consumableId": "cons001",
      "name": "硬盘",
      "categoryId": "cat001",
      "specification": "1TB SSD",
      "unit": "个",
      "stock": 100,
      "unitPrice": 500,
      "description": "固态硬盘",
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "message": "操作成功"
}

创建耗材

POST /api/consumables

请求参数

参数名 类型 必填 描述
consumableId string 耗材ID
name string 耗材名称
categoryId string 分类ID
specification string 规格
unit string 单位
stock number 库存数量
unitPrice number 单价
description string 描述

更新耗材

PUT /api/consumables/:consumableId

删除耗材

DELETE /api/consumables/:consumableId

耗材分类管理接口

获取耗材分类列表

GET /api/consumableCategories

创建耗材分类

POST /api/consumableCategories

更新耗材分类

PUT /api/consumableCategories/:categoryId

删除耗材分类

DELETE /api/consumableCategories/:categoryId

耗材领用记录接口

获取耗材领用记录

GET /api/consumableRecords

创建耗材领用记录

POST /api/consumableRecords

耗材日志接口

获取耗材日志

GET /api/consumableLogs

用户管理接口

获取用户列表

GET /api/users

响应示例

{
  "success": true,
  "data": [
    {
      "userId": "user001",
      "username": "admin",
      "email": "admin@example.com",
      "phone": "13800138000",
      "status": "active",
      "Roles": [],
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "message": "操作成功"
}

创建用户

POST /api/users

请求参数

参数名 类型 必填 描述
userId string 用户ID
username string 用户名
password string 密码
email string 邮箱
phone string 电话

更新用户

PUT /api/users/:userId

删除用户

DELETE /api/users/:userId

角色管理接口

获取角色列表

GET /api/roles

响应示例

{
  "success": true,
  "data": [
    {
      "roleId": "role001",
      "roleName": "管理员",
      "description": "系统管理员",
      "Permissions": [],
      "createdAt": "2024-01-01T00:00:00.000Z",
      "updatedAt": "2024-01-01T00:00:00.000Z"
    }
  ],
  "message": "操作成功"
}

创建角色

POST /api/roles

请求参数

参数名 类型 必填 描述
roleId string 角色ID
roleName string 角色名称
description string 描述
permissions array 权限列表

更新角色

PUT /api/roles/:roleId

删除角色

DELETE /api/roles/:roleId

系统设置接口

获取系统设置

GET /api/systemSettings

响应示例

{
  "success": true,
  "data": {
    "id": 1,
    "key": "system_config",
    "value": {
      "siteName": "IDC设备管理系统",
      "siteLogo": "/logo.png"
    },
    "createdAt": "2024-01-01T00:00:00.000Z",
    "updatedAt": "2024-01-01T00:00:00.000Z"
  },
  "message": "操作成功"
}

更新系统设置

PUT /api/systemSettings

背景配置接口

获取背景配置

GET /api/background

更新背景配置

PUT /api/background

健康检查接口

服务状态检查

GET /health

响应示例

{
  "status": "ok",
  "message": "IDC设备管理系统后端服务正常运行",
  "timestamp": "2024-01-01T00:00:00.000Z"
}

错误码说明

错误码 说明
400 请求参数错误
401 未授权访问
403 禁止访问
404 资源不存在
500 服务器内部错误