创建数据发布¶
将源数据库中的全部表或指定表发布给目标工作区。创建成功只表示发布已建立,不表示目标工作区已接受订阅。
POST https://moi.matrixorigin.cn/newmoi/data-share/publishes
调用前准备¶
准备有源工作区访问权限的个人访问令牌、源工作区 ID、源数据库 ID 和目标工作区 ID。
下方示例使用:
$AI_STUDIO_API_KEY:实际个人访问令牌,通过X-API-KeyHeader 传递。$WORKSPACE_ID:要创建数据发布的工作区 ID,通过X-Workspace-IDHeader 传递。$SOURCE_DATABASE_ID:要发布的源数据库 ID,在请求体中指定。$TABLE_ID:selected范围中要发布的表 ID,在请求体中指定。$TARGET_WORKSPACE_ID:接收发布的目标工作区 ID,在请求体中指定。
请求体¶
字段 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
|
string |
是 |
发布名称,不能为空、最多 200 个字符,且不能包含空格、制表符、反引号或单引号、双引号。 |
|
string |
是 |
源数据库 ID,必须为正整数形式的字符串。 |
|
object |
是 |
要发布的表范围。 |
|
string |
是 |
|
|
string(字符串数组) |
条件必填 |
|
|
string(字符串数组) |
是 |
至少一个不重复的目标工作区 ID;不能包含当前工作区 ID,且每个值不能有首尾空白。 |
|
string |
否 |
备注。 |
请求示例¶
curl -X POST "https://moi.matrixorigin.cn/newmoi/data-share/publishes" \
-H "X-API-Key: $AI_STUDIO_API_KEY" \
-H "X-Workspace-ID: $WORKSPACE_ID" \
-H 'Content-Type: application/json' \
--data-binary @- <<JSON
"name": "sales-share",
"source_database_id": "${SOURCE_DATABASE_ID}",
"table_scope": {
"mode": "selected",
"object_ids": ["${TABLE_ID}"]
},
"target_workspace_ids": ["${TARGET_WORKSPACE_ID}"],
"remark": "共享销售数据"
}
JSON
成功响应¶
成功时返回 200。data.id 是发布 ID。
{
"code": "OK",
"msg": "OK",
"data": {
"id": "101",
"name": "sales-share",
"source_database_id": "1001",
"mo_database_name": "sales",
"table_scope": {
"mode": "selected",
"object_ids": ["2001"]
},
"obj_display_name": "sales",
"obj_display_path": "catalog/sales",
"targets": [
{
"workspace_id": "ws-002",
"workspace_name": "分析工作区"
}
],
"permission": "read",
"remark": "共享销售数据",
"created_by": "user-001",
"created_at": "2026-08-18T10:00:00Z",
"updated_at": "2026-08-18T10:00:00Z"
}
}
响应字段如下。
字段路径中的 [] 表示数组中的每一项。例如,data.targets[].workspace_id 表示 data.targets 数组中每一项的 workspace_id 字段。
字段 |
类型 |
说明 |
|---|---|---|
|
string |
成功时为 |
|
string |
成功时为 |
|
string |
发布 ID。 |
|
string |
发布名称。 |
|
string |
源数据库 ID。 |
|
string |
MatrixOne 中的源数据库名称。 |
|
object |
已发布的表范围。 |
|
string |
表范围模式。 |
|
string(字符串数组) |
指定表的 ID;全部表模式时为空数组。 |
|
string |
用于显示的源对象名称。 |
|
string |
用于显示的源对象路径。 |
|
object(对象数组) |
目标工作区列表。 |
|
string |
目标工作区 ID。 |
|
string |
目标工作区名称;有值时返回。 |
|
string |
发布权限。 |
|
string |
发布备注。 |
|
string |
创建者标识。 |
|
string |
创建时间。 |
|
string |
最后更新时间。 |
错误响应¶
{
"code": "ErrDuplicatePublish",
"msg": "发布已存在",
"data": null
}
常见 HTTP 错误¶
HTTP 状态码 |
错误代码 |
常见原因 |
建议操作 |
|---|---|---|---|
|
|
请求体、源数据库 ID、表范围或目标工作区字段无效。 |
核对 |
|
|
源数据库或指定表不存在,或当前工作区无权访问。 |
重新选择当前工作区可访问的源数据库和表。 |
|
|
当前身份没有创建发布的权限。 |
请求授予数据发布创建权限。 |
|
|
发布名称或对象发布关系已存在。 |
更换名称,或更新已有发布。 |
|
|
创建过程可安全重试,且服务端已确认未创建发布。 |
使用相同请求稍后重试。 |
|
|
数据发布写入暂时暂停。 |
稍后使用相同请求重试。 |
|
|
服务端未能创建发布。 |
稍后重试。 |