接受数据订阅

接受一条数据订阅,并指定目标工作区中的订阅数据库名称。

POST https://moi.matrixorigin.cn/newmoi/data-share/subscriptions/{id}/subscribe

调用前准备

查询数据订阅列表,确认要接受的订阅。准备有目标工作区访问权限的个人访问令牌、目标工作区 ID、订阅 ID 和本地订阅名称。

下方示例使用:

  • $AI_STUDIO_API_KEY:实际个人访问令牌,通过 X-API-Key Header 传递。

  • $WORKSPACE_ID:目标工作区 ID,通过 X-Workspace-ID Header 传递。

  • $SUBSCRIPTION_ID:要接受的订阅 ID,取自查询数据订阅列表的响应。

路径参数

参数

类型

说明

id

integer

大于 0 的订阅 ID。

请求体

字段

类型

是否必填

说明

sub_name

string

本地订阅名称。

请求示例

curl -X POST "https://moi.matrixorigin.cn/newmoi/data-share/subscriptions/$SUBSCRIPTION_ID/subscribe" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "sub_name": "sales_subscription"
  }'

成功响应

成功时返回 200 和更新后的订阅记录。记录目标数据库 ID;它表示目标工作区中创建的订阅数据库。

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "id": "201",
    "pub_name": "sales-share",
    "source_database_id": "101",
    "mo_database_name": "sales",
    "table_scope": {
      "mode": "selected",
      "object_ids": ["1001"]
    },
    "target_database_id": "301",
    "obj_display_name": "sales",
    "obj_display_path": "catalog/sales",
    "source_workspace_id": "ws-001",
    "source_workspace_name": "数据工作区",
    "publisher": "user-001",
    "published_at": "2026-08-18T10:00:00Z",
    "status": "subscribed",
    "sub_name": "sales_subscription",
    "subscribed_by": "user-002",
    "created_at": "2026-08-18T10:00:00Z"
  }
}

响应字段如下。

字段

类型

说明

code

string

成功时为 OK

msg

string

成功时为 OK

data.id

string

订阅 ID。

data.pub_name

string

来源发布名称。

data.source_database_id

string

来源数据库 ID。

data.mo_database_name

string

来源数据库名称。

data.table_scope

object

发布共享的表范围。

data.table_scope.mode

string

范围模式:allselected

data.table_scope.object_ids

string(字符串数组)

当范围模式为 selected 时的表 ID 列表。

data.target_database_id

string

目标工作区中订阅数据库的 ID;接受成功后返回。

data.obj_display_name

string

来源数据库的显示名称。

data.obj_display_path

string

来源数据库的显示路径。

data.source_workspace_id

string

来源工作区 ID。

data.source_workspace_name

string

来源工作区名称;有值时返回。

data.publisher

string

发布者。

data.published_at

string

发布时间。

data.status

string

当前订阅状态。

data.sub_name

string

目标工作区中的订阅数据库名称。

data.subscribed_by

string

接受订阅的身份标识。

data.created_at

string

接受订阅的时间。

错误响应

{
  "code": "ErrAlreadySubscribed",
  "msg": "数据已订阅",
  "data": null
}

常见 HTTP 错误

HTTP 状态码

错误代码

常见原因

建议操作

400

ErrParamInvalid

订阅 ID 或 sub_name 无效。

核对路径和请求体字段。

403

ErrPermissionDenied

当前身份没有创建订阅的权限。

请求授予数据订阅创建权限。

404

ErrSubscriptionNotFound

订阅不存在或不属于当前工作区。

核对订阅 ID 和工作区。

409

ErrAlreadySubscribed

已接受该订阅。

查询订阅列表,避免重复提交。

409

ErrNameConflict

目标工作区已有同名订阅数据库。

更换 sub_name 后重试。

503

ErrServiceUnavailable

依赖服务暂不可用。

稍后重试。

500

ErrServer

服务端未能接受订阅。

稍后重试。

后续操作

使用 data.target_database_id 记录目标订阅数据库;再查询数据订阅列表确认订阅状态和名称。

最后更新于