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 服务器内部错误