**版本：202701**

# 更新菜单导航

**PUT** `/openapi/2027-01/menus/:id`

更新菜单的名称与菜单项；内置菜单可修改的字段有限。

## 请求

**Path参数**

- `id` string (required)

  要更新的菜单 id

**application/json**

**请求体 | 示例**

**请求体 (required)**

- `title` string

  新名称。可选，不传则保持原样
- `category` int32

  菜单分类（自定义菜单 = `3`）。可选；传 `0` 或不传都保持原值
- `children` object[]

  菜单项树。传入时整体替换现有菜单项，未包含的已有项会被删除；不传保持原有菜单项；传空数组清空全部菜单项

  *   Array \[

  - `id` int64

    该菜单中已有菜单项的 id。更新时传入则原地更新该项并保留 id，不传则新建一项；创建菜单时忽略
  - `title` string

    菜单项名称
  - `target` string

    链接打开方式，如 `_blank` 为新窗口打开
  - `disabled` int32

    是否禁用：`1` 禁用，`0` 启用
  - `url_obj` object

    菜单项的链接；不传表示无跳转

    - `type` string

      链接类型，如 `home`、`product`、`collection`、`page`、`article`、`blog`、`web`； 无法识别的取值按无跳转（`0`）保存
    - `source_id` string

      链接到的资源 id（商品、专辑、页面等）
    - `url` string

      链接地址
  - `children` undefined[]

    子菜单项，可任意层嵌套
  *   \]

```json
{
  "title": "string",
  "category": 0,
  "children": [
    {
      "id": 0,
      "title": "string",
      "target": "string",
      "disabled": 0,
      "url_obj": {
        "type": "string",
        "source_id": "string",
        "url": "string"
      },
      "children": [
        null
      ]
    }
  ]
}
```

## 响应

**200**

OK

**application/json**

**数据结构 | 示例**

**数据结构**

- `code` string

  错误码
- `message` string

  错误信息
- `data` object

  - `menu` object

    更新后的菜单

    - `id` string

      菜单 id

```json
{
  "code": "string",
  "message": "string",
  "data": {
    "menu": {
      "id": "string"
    }
  }
}
```
