Skip to content

上传菜单清单

POST/sys_base/platform/manifest/uploadMenuCatalog
构建时间2026-06-26 20:10:33(Asia/Shanghai)来源项目中间件文档 / 中间件后端来源仓../cl-midserver-2026来源提交号69b951a07311e75887b57e0400d888f89dd72cac
查看文档来源信息
  • 来源目录:addons/sys_base/docs
  • 来源文件:接口文档/28-上传菜单清单.md

详细说明

用于把已经通过校验的菜单清单保存为菜单版本草稿。接口会在落库前重新执行完整菜单清单校验;只要存在 blocking 阻断项,本次上传不会创建或更新版本记录。

本接口适用于 system_menuapp_menu 两类菜单清单。前端在选择 JSON 文件后应先调用“校验菜单清单”接口,确认无阻断项后再调用本接口保存草稿。

接口信息

项目内容
请求方式POST
请求路径/sys_base/platform/manifest/uploadMenuCatalog
来源文件接口文档/28-上传菜单清单.md

请求头

请求头示例值说明
Content-Typeapplication/json请求体格式。
x-token<登录令牌>登录令牌。
app-idmid-admin当前应用 ID。
addons-typesys_base当前模块标识。

入参

参数名类型是否必填示例值参数说明
targetAddonsTypestringsys_base当前页面选择的目标模块标识,必须与清单 manifest.addonsType 一致。
targetCatalogTypestringsystem_menu当前入口要求的清单类型,固定为 system_menuapp_menu
targetAppScopeobject{"scopeMode":"all_apps"}当前页面选择的应用范围,必须与清单 manifest.appScope 一致。
fileNamestringsys_base.system_menu.json上传文件名,仅用于版本记录和审计展示。
manifestobject{...}菜单清单正文,根字段必须使用正式字段名。

参数说明

请参考上方入参表。

请求示例

json
{
  "targetAddonsType": "sys_base",
  "targetCatalogType": "system_menu",
  "targetAppScope": {
    "scopeMode": "all_apps"
  },
  "fileName": "sys_base.system_menu.json",
  "manifest": {
    "addonsType": "sys_base",
    "catalogType": "system_menu",
    "catalogCode": "sys_base.system_menu",
    "catalogTitle": "系统菜单清单",
    "catalogVersion": "v1.0.0",
    "sourceProjectCode": "sys_base.pcweb",
    "appScope": {
      "scopeMode": "all_apps"
    },
    "pages": [
      {
        "pageCode": "system.menu.manage",
        "pageTitle": "系统菜单",
        "menuFlag": "menu",
        "routeName": "menu"
      }
    ],
    "actions": [
      {
        "pageCode": "system.menu.manage",
        "actionCode": "menu.publish",
        "actionTitle": "系统菜单发布"
      }
    ],
    "menuSeeds": [
      {
        "seedType": "page",
        "pageCode": "system.menu.manage",
        "title": "系统菜单",
        "name": "menu",
        "menuFlag": "menu",
        "menuType": "menu"
      }
    ],
    "defaultPage": {
      "pageCode": "system.menu.manage",
      "routeName": "menu",
      "menuFlag": "menu"
    }
  }
}

响应输出

成功

json
{
  "code": 0,
  "msg": "菜单版本上传成功",
  "data": {
    "detail": {
      "version": {
        "uuid": "MCVxxxx",
        "addonsType": "sys_base",
        "catalogType": "system_menu",
        "catalogCode": "sys_base.system_menu",
        "catalogTitle": "系统菜单清单",
        "catalogVersion": "v1.0.0",
        "sourceProjectCode": "sys_base.pcweb",
        "appScopeKey": "scopeMode=all_apps",
        "appScope": {
          "scopeMode": "all_apps"
        },
        "versionStatus": "uploaded",
        "fileName": "sys_base.system_menu.json",
        "validation": {
          "summary": {
            "blockingCount": 0,
            "warningCount": 0,
            "infoCount": 0,
            "hasBlocking": false
          },
          "issues": []
        }
      },
      "manifest": {}
    }
  }
}

阻断

json
{
  "code": 7,
  "msg": "菜单清单上传已阻断:menuSeeds 不能为空",
  "data": {
    "detail": {
      "version": {
        "versionStatus": "blocked",
        "validation": {
          "summary": {
            "blockingCount": 1,
            "warningCount": 0,
            "infoCount": 0,
            "hasBlocking": true
          },
          "issues": [
            {
              "severity": "blocking",
              "field": "menuSeeds",
              "ruleCode": "required_menu_seeds",
              "message": "menuSeeds 不能为空",
              "suggestion": "至少声明一组正式菜单承载节点"
            }
          ]
        }
      },
      "manifest": {}
    }
  }
}

字段说明

字段名类型字段说明
codenumber0 表示保存草稿成功,7 表示失败。
msgstring操作结果或阻断原因。
data.detail.version.uuidstring保存成功后的菜单版本记录号;阻断时为空。
data.detail.version.versionStatusstring保存成功为 uploaded;阻断响应仅用于展示校验结果,不代表已落库。
data.detail.version.validation.summary.blockingCountnumber阻断项数量。
data.detail.version.validation.issuesarray校验问题明细。
data.detail.manifestobject后端规范化后的清单内容。

curl 示例

bash
curl --location --request POST 'http://127.0.0.1:8100/sys_base/platform/manifest/uploadMenuCatalog' \
--header 'Content-Type: application/json' \
--header 'x-token: <登录令牌>' \
--header 'app-id: mid-admin' \
--header 'addons-type: sys_base' \
--data-raw '{
  "targetAddonsType": "sys_base",
  "targetCatalogType": "system_menu",
  "targetAppScope": {
    "scopeMode": "all_apps"
  },
  "fileName": "sys_base.system_menu.json",
  "manifest": {
    "addonsType": "sys_base",
    "catalogType": "system_menu",
    "catalogCode": "sys_base.system_menu",
    "catalogTitle": "系统菜单清单",
    "catalogVersion": "v1.0.0",
    "sourceProjectCode": "sys_base.pcweb",
    "appScope": {
      "scopeMode": "all_apps"
    },
    "pages": [
      {
        "pageCode": "system.menu.manage",
        "pageTitle": "系统菜单",
        "menuFlag": "menu",
        "routeName": "menu"
      }
    ],
    "actions": [
      {
        "pageCode": "system.menu.manage",
        "actionCode": "menu.publish",
        "actionTitle": "系统菜单发布"
      }
    ],
    "menuSeeds": [
      {
        "seedType": "page",
        "pageCode": "system.menu.manage",
        "title": "系统菜单",
        "name": "menu",
        "menuFlag": "menu",
        "menuType": "menu"
      }
    ],
    "defaultPage": {
      "pageCode": "system.menu.manage",
      "routeName": "menu",
      "menuFlag": "menu"
    }
  }
}'

CL 正式文档平台