百积木文档
开发指南平台应用、模块与 Bundle 开发模块开发

模块方法调用入口

区分 CLI、平台应用和 Runtime 服务网关的真实路径、参数包装与身份来源。

模块没有统一的 /api/module/ 调用入口。调用方先选择适用的公开合同,再读取目标 Runtime 的服务和方法定义。 businessId 是 Runtime 服务身份;Module 内部行 ID、版本行 ID、资源 key 和完整 Resource Locator 不能替代它。 平台应用浏览器通过声明的目标名称调用,不读取 Runtime businessId。

按调用方选择入口

调用方入口业务参数
本机 CLI、开发者自动化baijimu runtime service call--params JSON 对象
平台应用浏览器POST {appGatewayApiBase}/workspace-runtime/apps/{installId}/invoke请求体中的 params
获准直连 Runtime 服务网关的调用方POST {apiGatewayUrl}/{businessId}/{methodName}方法参数位于请求体顶层
模块后端调用属性绑定服务POST {access.url}/{methodName}方法参数位于请求体顶层

apiGatewayUrl、access.url 和凭据由当前 Runtime 配置或授权交付返回;appGatewayApiBase 来自应用同源配置。 不要从域名、工作区 ID、资源 key 或目标 businessId 自行推导地址。 显式配置的业务网关路由以该网关自己的合同为准,不能把任意自定义路径当作平台通用接口。

CLI 与开发者自动化

先逐级读取本机 --help,再在明确工作区、Runtime、来源环境与 Bundle 范围内执行 runtime services list、runtime service get,从返回值选择准确 businessId,回读目标方法的 paramDefinitions。 只在已授权业务效果或确认只读的情况下执行调用:

baijimu runtime service call <businessId> <methodName> \
  --workspace-id <workspaceId> \
  --application-runtime-id <applicationRuntimeId> \
  --params '{}'

无参数方法显式传 {}。指定 Runtime 时,发现、详情和调用使用同一 Runtime;不指定时使用该工作区默认 Runtime。 CLI 使用的公开 HTTP 合同是:

POST /partner/v1/backend-instance/api/workspaces/{workspaceId}/runtime/services/call
Content-Type: application/json
{
  "applicationRuntimeId": "<applicationRuntimeId>",
  "businessId": "<businessId>",
  "method": "<methodName>",
  "params": {}
}

认证交由已登录 CLI 管理。HTTP 请求中的 applicationRuntimeId 可省略以选择工作区默认 Runtime。 示例文件:Runtime 服务请求。

平台应用

SDK 10.0.0 使用应用声明的目标名称字符串:

const result = await client.call("course-directory", "createCourse", { name: "高等数学" });

target 名称来自应用配置 targets,不接受浏览器提交的资源对象、Runtime 服务 ID 或凭据。 完整配置和请求见调用模块方法。

Runtime 服务网关与属性路径

普通服务路径首段是当前 Runtime 的 businessId,末段是方法。 通过属性调用时,首段是来源模块的 businessId,中间段是声明的属性及 Map/List 选择器;平台按有效绑定解析目标。 后端应直接使用交付的 access.url,追加编码后的方法段。Map 按完整键选择,List 按规范零起下标选择。 完整 URL、选择器编码、凭据保存和请求级用户委托见模块服务间调用协议。

Runtime 网关直连请求体中的字段与方法参数同名。只有方法确实声明名为 params 的参数,才传 {"params": {...}}。CLI 和 App Gateway 的外层 params 属于各自调用信封,不能照搬到直连网关请求体。

本页内容