3.2 KiB
3.2 KiB
API 文档:修改菜单接口
元数据
- 需求编号:2026-01-21-002-03-29
- 创建时间:2026-01-26
- 创建人:SSOT 架构师
- 父需求:2026-01-21-002-03-数据库国际化需求
接口概述
修改已有的菜单,支持编辑中文字段和英文字段。
接口详情
基本信息
- 接口名称:修改菜单
- 接口描述:修改菜单,支持国际化
- 请求方式:PUT
- 请求路径:
/system/menu - 权限要求:
system:menu:edit
请求参数
| 参数名 | 类型 | 必选 | 说明 |
|---|---|---|---|
| menuId | Long | 是 | 菜单ID |
| menuName | String | 是 | 菜单名称(中文) |
| menuNameEn | String | 否 | 菜单名称(英文) |
| menuNameI18n | String | 否 | 菜单名称(多语言JSON) |
| parentId | Long | 是 | 父菜单ID |
| orderNum | Integer | 是 | 显示顺序 |
| path | String | 否 | 路由地址 |
| component | String | 否 | 组件路径 |
| query | String | 否 | 路由参数 |
| routeName | String | 否 | 路由名称 |
| isFrame | String | 否 | 是否为外链(0是 1否) |
| isCache | String | 否 | 是否缓存(0缓存 1不缓存) |
| menuType | String | 是 | 类型(M目录 C菜单 F按钮) |
| visible | String | 否 | 显示状态(0显示 1隐藏) |
| status | String | 否 | 菜单状态(0正常 1停用) |
| perms | String | 否 | 权限字符串 |
| icon | String | 否 | 菜单图标 |
请求示例
curl -X PUT 'http://localhost:8080/system/menu' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json' \
-d '{
"menuId": 2,
"menuName": "用户管理",
"menuNameEn": "User Management",
"parentId": 1,
"orderNum": 1,
"path": "user",
"component": "system/user/index",
"menuType": "C",
"visible": "0",
"status": "0",
"perms": "system:user:list",
"icon": "user"
}'
响应数据结构
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 状态码(200 成功,500 失败) |
| msg | String | 提示信息 |
| data | Object | 数据对象(通常为 null) |
响应示例
成功响应:
{
"code": 200,
"msg": "操作成功",
"data": null
}
失败响应:
{
"code": 500,
"msg": "修改菜单'用户管理'失败,菜单名称已存在",
"data": null
}
业务规则
- 菜单名称在同一父菜单下必须唯一
- 如果是外链菜单,地址必须以 http(s):// 开头
- 上级菜单不能选择自己
- 修改
menuName时,自动翻译并更新menuNameEn(调用翻译 API) - 修改成功后,清除菜单缓存
国际化说明
- 支持编辑中文字段(menuName)和英文字段(menuNameEn)
- 支持编辑多语言 JSON 字段(menuNameI18n)
- 自动翻译功能:修改中文字段时,自动翻译并更新英文字段
性能要求
- 响应时间:< 100ms
- 数据库更新时间:< 50ms