Skip to content

用户管理模块接口规范

文档编号: SYS-INT-API-USER-001
模块: 用户管理 (USER)
基础路径: /api/v1/users
版本: v1
日期: 2026-03-09
作者: 系统架构师
状态: ✅ 已评审


一、模块概述

1.1 功能说明

用户管理模块提供系统用户的增删改查、状态管理、密码管理、角色分配等功能。

1.2 接口列表

序号接口名称方法路径权限要求
1查询用户列表GET/usersuser:read
2创建用户POST/usersuser:create
3查询用户详情GET/users/{id}user:read
4更新用户PUT/users/{id}user:update
5部分更新用户PATCH/users/{id}user:update
6删除用户DELETE/users/{id}user:delete
7批量删除用户DELETE/users/batchuser:delete
8启用用户POST/users/{id}/enableuser:update
9禁用用户POST/users/{id}/disableuser:update
10重置密码POST/users/{id}/reset-passworduser:update
11修改密码POST/users/{id}/change-passworduser:update
12查询用户角色GET/users/{id}/rolesuser:read, role:read
13分配用户角色POST/users/{id}/rolesuser:update, role:update
14查询用户部门GET/users/{id}/deptsuser:read, org:read
15导出用户POST/users/exportuser:read

二、接口详细定义

1. 查询用户列表

基本信息

项目内容
接口名称查询用户列表
请求方法GET
接口路径/api/v1/users
权限要求user:read

请求参数

Query参数:

参数名类型必填说明示例
pageinteger当前页码,默认11
sizeinteger每页大小,默认1010
keywordstring搜索关键词(用户名/昵称/手机号)zhangsan
statusinteger用户状态:0-禁用,1-启用1
deptIdinteger部门ID1
roleIdinteger角色ID1
startTimestring创建时间开始(ISO 8601)2024-01-01T00:00:00Z
endTimestring创建时间结束(ISO 8601)2024-12-31T23:59:59Z
sortstring排序字段,格式:字段,方向createTime,desc

响应数据

成功响应:

json
{
  "code": 0,
  "data": {
    "items": [
      {
        "id": 1,
        "username": "zhangsan",
        "nickname": "张三",
        "email": "zhangsan@example.com",
        "phone": "13800138000",
        "avatar": "https://cdn.example.com/avatar/1.jpg",
        "status": 1,
        "statusName": "启用",
        "deptId": 1,
        "deptName": "技术部",
        "roleIds": [1, 2],
        "roleNames": ["系统管理员", "普通用户"],
        "createTime": "2024-01-01T10:00:00Z",
        "updateTime": "2024-01-01T10:00:00Z"
      }
    ],
    "total": 100
  },
  "error": null,
  "message": "ok"
}

字段说明:

字段类型说明
idinteger用户ID
usernamestring用户名
nicknamestring昵称
emailstring邮箱
phonestring手机号
avatarstring头像URL
statusinteger状态:0-禁用,1-启用
statusNamestring状态名称
deptIdinteger部门ID
deptNamestring部门名称
roleIdsarray角色ID列表
roleNamesarray角色名称列表
createTimestring创建时间(ISO 8601)
updateTimestring更新时间(ISO 8601)

请求示例

http
GET /api/v1/users?page=1&size=10&keyword=zhangsan&status=1&sort=createTime,desc
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

2. 创建用户

基本信息

项目内容
接口名称创建用户
请求方法POST
接口路径/api/v1/users
权限要求user:create

请求参数

Body参数 (application/json):

参数名类型必填说明示例
usernamestring用户名,3-20字符zhangsan
nicknamestring昵称,2-50字符张三
emailstring邮箱zhangsan@example.com
phonestring手机号13800138000
passwordstring密码,6-20字符******
avatarstring头像URLhttps://...
genderinteger性别:0-未知,1-男,2-女1
deptIdinteger部门ID1
roleIdsarray角色ID列表[1, 2]
remarkstring备注新员工

请求示例

http
POST /api/v1/users
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "username": "zhangsan",
  "nickname": "张三",
  "email": "zhangsan@example.com",
  "phone": "13800138000",
  "password": "123456",
  "gender": 1,
  "deptId": 1,
  "roleIds": [1, 2],
  "remark": "技术部新员工"
}

响应数据

成功响应:

json
{
  "code": 0,
  "data": {
    "id": 1,
    "username": "zhangsan",
    "nickname": "张三",
    "email": "zhangsan@example.com",
    "phone": "13800138000",
    "status": 1,
    "createTime": "2024-03-09T10:00:00Z"
  },
  "error": null,
  "message": "ok"
}

错误响应:

json
{
  "code": -1,
  "data": {
    "errors": [
      {
        "field": "username",
        "message": "用户名已存在"
      }
    ]
  },
  "error": "请求参数错误",
  "message": "请求参数错误"
}

3. 查询用户详情

基本信息

项目内容
接口名称查询用户详情
请求方法GET
接口路径/api/v1/users/{id}
权限要求user:read

请求参数

Path参数:

参数名类型必填说明示例
idinteger用户ID1

响应数据

成功响应:

json
{
  "code": 0,
  "data": {
    "id": 1,
    "username": "zhangsan",
    "nickname": "张三",
    "email": "zhangsan@example.com",
    "phone": "13800138000",
    "avatar": "https://cdn.example.com/avatar/1.jpg",
    "gender": 1,
    "genderName": "男",
    "status": 1,
    "statusName": "启用",
    "deptId": 1,
    "deptName": "技术部",
    "roleIds": [1, 2],
    "roleNames": ["系统管理员", "普通用户"],
    "remark": "技术部新员工",
    "lastLoginTime": "2024-03-09T09:00:00Z",
    "lastLoginIp": "192.168.1.1",
    "createTime": "2024-01-01T10:00:00Z",
    "updateTime": "2024-03-09T10:00:00Z"
  },
  "error": null,
  "message": "ok"
}

4. 更新用户

基本信息

项目内容
接口名称更新用户
请求方法PUT
接口路径/api/v1/users/{id}
权限要求user:update

请求参数

Path参数:

参数名类型必填说明示例
idinteger用户ID1

Body参数 (application/json):

参数名类型必填说明
nicknamestring昵称
emailstring邮箱
phonestring手机号
avatarstring头像URL
genderinteger性别
deptIdinteger部门ID
remarkstring备注

注意: PUT请求为全量更新,未提供的字段将被置空或设为默认值。

请求示例

http
PUT /api/v1/users/1
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "nickname": "张三三",
  "email": "zhangsan.new@example.com",
  "phone": "13900139000",
  "deptId": 2,
  "remark": "已调岗至产品部"
}

5. 部分更新用户

基本信息

项目内容
接口名称部分更新用户
请求方法PATCH
接口路径/api/v1/users/{id}
权限要求user:update

请求参数

Path参数:

参数名类型必填说明示例
idinteger用户ID1

Body参数 (application/json):

只提供需要更新的字段。

请求示例

http
PATCH /api/v1/users/1
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "phone": "13900139000"
}

6. 删除用户

基本信息

项目内容
接口名称删除用户
请求方法DELETE
接口路径/api/v1/users/{id}
权限要求user:delete

请求参数

Path参数:

参数名类型必填说明示例
idinteger用户ID1

响应数据

成功响应:

json
{
  "code": 0,
  "data": null,
  "error": null,
  "message": "ok"
}

错误响应:

json
{
  "code": -1,
  "data": null,
  "error": "该用户有关联数据,无法删除",
  "message": "该用户有关联数据,无法删除"
}

7. 批量删除用户

基本信息

项目内容
接口名称批量删除用户
请求方法DELETE
接口路径/api/v1/users/batch
权限要求user:delete

请求参数

Body参数 (application/json):

参数名类型必填说明示例
idsarray用户ID列表[1, 2, 3]

请求示例

http
DELETE /api/v1/users/batch
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "ids": [1, 2, 3]
}

8. 启用用户

基本信息

项目内容
接口名称启用用户
请求方法POST
接口路径/api/v1/users/{id}/enable
权限要求user:update

请求参数

Path参数:

参数名类型必填说明示例
idinteger用户ID1

响应数据

成功响应:

json
{
  "code": 0,
  "data": {
    "id": 1,
    "status": 1,
    "statusName": "启用"
  },
  "error": null,
  "message": "ok"
}

9. 禁用用户

基本信息

项目内容
接口名称禁用用户
请求方法POST
接口路径/api/v1/users/{id}/disable
权限要求user:update

响应数据

成功响应:

json
{
  "code": 0,
  "data": {
    "id": 1,
    "status": 0,
    "statusName": "禁用"
  },
  "error": null,
  "message": "ok"
}

10. 重置密码

基本信息

项目内容
接口名称重置密码
请求方法POST
接口路径/api/v1/users/{id}/reset-password
权限要求user:update

请求参数

Path参数:

参数名类型必填说明示例
idinteger用户ID1

Body参数 (application/json):

参数名类型必填说明示例
newPasswordstring新密码******

响应数据

成功响应:

json
{
  "code": 0,
  "data": null,
  "error": null,
  "message": "ok"
}

11. 修改密码

基本信息

项目内容
接口名称修改密码
请求方法POST
接口路径/api/v1/users/{id}/change-password
权限要求user:update

请求参数

Path参数:

参数名类型必填说明示例
idinteger用户ID1

Body参数 (application/json):

参数名类型必填说明示例
oldPasswordstring原密码******
newPasswordstring新密码******

响应数据

错误响应:

json
{
  "code": -1,
  "data": null,
  "error": "原密码错误",
  "message": "原密码错误"
}

12. 查询用户角色

基本信息

项目内容
接口名称查询用户角色
请求方法GET
接口路径/api/v1/users/{id}/roles
权限要求user:read, role:read

响应数据

json
{
  "code": 0,
  "data": [
    {
      "id": 1,
      "code": "admin",
      "name": "系统管理员",
      "description": "拥有所有权限"
    },
    {
      "id": 2,
      "code": "user",
      "name": "普通用户",
      "description": "普通用户权限"
    }
  ],
  "error": null,
  "message": "ok"
}

13. 分配用户角色

基本信息

项目内容
接口名称分配用户角色
请求方法POST
接口路径/api/v1/users/{id}/roles
权限要求user:update, role:update

请求参数

Body参数 (application/json):

参数名类型必填说明示例
roleIdsarray角色ID列表[1, 2]

请求示例

http
POST /api/v1/users/1/roles
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "roleIds": [1, 2]
}

14. 查询用户部门

基本信息

项目内容
接口名称查询用户部门
请求方法GET
接口路径/api/v1/users/{id}/depts
权限要求user:read, org:read

响应数据

json
{
  "code": 0,
  "data": [
    {
      "id": 1,
      "code": "tech",
      "name": "技术部",
      "parentId": 0,
      "path": "/1/",
      "isMain": true
    }
  ],
  "error": null,
  "message": "ok"
}

15. 导出用户

基本信息

项目内容
接口名称导出用户
请求方法POST
接口路径/api/v1/users/export
权限要求user:read

请求参数

Body参数 (application/json):

参数名类型必填说明示例
keywordstring搜索关键词zhangsan
statusinteger用户状态1
deptIdinteger部门ID1
formatstring导出格式:xlsx/csv,默认xlsxxlsx

响应数据

成功响应: 返回文件流

http
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Disposition: attachment; filename="users_20240309.xlsx"

三、数据模型

3.1 用户对象 (User)

字段类型必填说明
idinteger用户ID
usernamestring用户名,3-20字符,字母数字下划线
nicknamestring昵称,2-50字符
emailstring邮箱,唯一
phonestring手机号,11位数字
avatarstring头像URL
genderinteger性别:0-未知,1-男,2-女
passwordstring密码,加密存储
statusinteger状态:0-禁用,1-启用
deptIdinteger主部门ID
remarkstring备注,最多500字符
lastLoginTimedatetime最后登录时间
lastLoginIpstring最后登录IP
createTimedatetime创建时间
updateTimedatetime更新时间

3.2 用户状态枚举

名称说明
0禁用用户无法登录
1启用用户正常使用

3.3 性别枚举

名称说明
0未知未设置性别
1男性
2女性

四、错误码

错误码错误信息说明
400请求参数错误参数校验失败
401未认证Token无效或过期
403无权限用户无此操作权限
404用户不存在指定的用户ID不存在
409数据冲突用户名/邮箱已存在
422业务规则校验失败如:不能删除当前登录用户
500服务器内部错误系统异常

五、相关文档


六、评审记录

6.1 评审意见

序号评审项评审结果评审意见
1接口完整性✓ 通过覆盖用户管理所有功能点
2接口规范性✓ 通过符合RESTful API设计规范
3权限设计✓ 通过权限编码规范,粒度合理
4请求参数✓ 通过参数定义清晰,校验规则明确
5响应格式✓ 通过统一响应格式,字段完整

6.2 评审结论

评审结论: 通过

评审意见: 用户管理模块接口规范完整,设计合理,可作为开发依据。

6.3 签字确认

角色姓名签字日期意见
技术总监张总_______________2026-03-09同意
系统架构师李工_______________2026-03-09同意
后端架构师王工_______________2026-03-09同意
前端负责人陈工_______________2026-03-09同意

七、修订记录

版本日期作者变更内容
1.02026-03-09系统架构师初始版本,定义用户管理模块15个接口
1.12026-03-11系统架构师统一响应格式,与Mock服务保持一致

Released under the MIT License.