# 查看资源目录

```{raw} html
<div class="mo-api-page-show-toc" aria-hidden="true"></div>
```

返回当前工作区中可访问的 Catalog、数据库、卷和表的层级导航数据。

```text
POST https://api.moi.matrixorigin.cn/v5/catalog/tree
```

## 调用前准备

准备有目标工作区访问权限的个人访问令牌和目标工作区 ID。

## 请求体

:::::::{div} mo-api-tabs
::::::{tab-set}
:::::{tab-item} 请求示例

```bash
curl -X POST "https://api.moi.matrixorigin.cn/v5/catalog/tree" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "include_table_leaves": true
  }'
```

:::::
:::::{tab-item} 参数说明

::::{tab-set}
:::{tab-item} 请求体

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `include_table_leaves` | boolean | 否 | 是否在树中包含表叶子节点；省略或为 `null` 时默认 `true`。 |

:::
::::

:::::
::::::
:::::::

## 成功响应

成功时返回 `200`。结果仅包含当前身份可读取的节点。

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "code": "OK",
  "msg": "OK",
  "data": {
    "tree": [
      {
        "id": "1",
        "type": "catalog",
        "name": "sales",
        "display_name": "sales",
        "description": "销售数据",
        "reserved": false,
        "node_list": [
          {
            "id": "2",
            "type": "database",
            "name": "orders",
            "description": "",
            "reserved": false,
            "node_list": []
          }
        ],
        "allowed_actions": ["catalog.read"]
      }
    ]
  }
}
```

:::::
:::::{tab-item} 字段说明

::::{tab-set}
:::{tab-item} 通用字段

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 成功时为 `OK`。 |
| `msg` | string | 成功时为 `OK`。 |

:::
:::{tab-item} 资源目录

下面表格展开响应示例中 `data` 对象；每一行是该对象的一个字段。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `tree` | array of object | 根节点列表；没有可读资源时为空数组。 |

:::
:::{tab-item} 目录节点

下面表格展开响应示例中 `data.tree` 数组的每一项；每一行是该数组项的一个字段。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `id` | string | 节点 ID。 |
| `type` | string | 节点类型：`catalog`、`database`、`volume` 或 `table`。 |
| `name` | string | 节点名称。 |
| `display_name` | string | 节点显示名称；有值时返回。 |
| `description` | string | 节点说明。 |
| `display_description` | string | 节点显示说明；有值时返回。 |
| `reserved` | boolean | 是否为保留节点。 |
| `is_pub` | boolean | 是否为发布节点；适用时返回。 |
| `is_sub` | boolean | 是否为订阅节点；适用时返回。 |
| `node_list` | array of object | 子节点，字段与父节点相同。 |
| `allowed_actions` | array of string | 当前身份对该节点可执行的操作。 |
| `trigger_binding` | object | 卷与工作流触发器的绑定信息；有值时返回。 |

:::
:::{tab-item} 工作流触发

下面表格展开响应示例中 `data.tree[].trigger_binding` 对象；每一行是该对象的一个字段。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `bound` | boolean | 是否存在触发器绑定。 |
| `trigger_id` | string | 触发器 ID。 |
| `workflow_id` | string | 关联工作流 ID。 |
| `workflow_name` | string | 关联工作流名称。 |
| `workflow_version_id` | string | 关联工作流版本 ID。 |

:::
::::

:::::
::::::
:::::::

## 错误响应

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "code": "ErrParamInvalid",
  "msg": "Bad Request"
}
```

:::::
:::::{tab-item} 字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `code` | string | 错误代码。 |
| `msg` | string | 错误信息。 |

:::::
::::::
:::::::

## 后续操作

完成后可返回[查询文件产物](list-file-artifacts.md)。
