Script 资源与端点

最后更新:2026年7月17日

Script 是前端通过 HTTP 调用的声明式后端端点(概念与顶层结构在 Script 概述 中介绍)。本页介绍 Script 资源sys 结构与正文属性,以及编写和执行 ScriptHTTP 端点的规范。

Script 由两个管理 API 处理。在 CMA(Weegloo User 身份)中,可以进行列表、查询、创建、修改、删除以及执行、轮询的全部操作。在 ACMA(在产品中注册的 ServiceUser 身份)中,只能执行和轮询,编写(创建、修改、删除)为 CMA 专用。只读的投递 API(CDA、ACDA)中没有 Script

Script 是带有 version 的资源,也是受各套餐数量限制的计费(Billable)资源。不过与 ContentMedia 不同,它不具有发布状态。 sys 中没有 statuspublish 之类的发布相关属性,每次变更只会使 version 递增。由于没有发布、取消发布的概念,删除时也无需取消发布即可直接进行。

资源结构

以下是 Script "t6-http" 的单个查询响应。除 sys(系统属性)外,还具有 namedefinition 两个正文属性。

{
  "sys": {
    "id": "3trmXRMZcTAjDnphewjj1AaxYcaxlK",
    "type": "Script",
    "space": { "sys": { "id": "6jSUUAWT", "type": "Refer", "targetType": "Space" } },
    "createdBy": { "sys": { "id": "3p4tcFbQYJNvYTBJf2rYKr42xegQLJ", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-07-15T12:35:47.575Z",
    "updatedBy": { "sys": { "id": "3p4tcFbQYJNvYTBJf2rYKr42xegQLJ", "type": "Refer", "targetType": "User" } },
    "updatedAt": "2026-07-15T12:35:47.575Z",
    "version": 1
  },
  "name": "t6-http",
  "definition": {
    "method": "Post",
    "executionMode": "Async",
    "statements": [
      {
        "name": "resp",
        "method": "POST",
        "url": "https://postman-echo.com/post",
        "headers": [ { "key": "Content-Type", "value": "application/json", "secret": false } ],
        "body": { "prompt": "{ /payload/prompt }" },
        "timeoutMs": 10000,
        "retry": 0,
        "type": "Http"
      },
      {
        "value": { "status": "{ /resp/status }", "prompt": "{ /resp/body/json/prompt }" },
        "isError": false,
        "statusCode": 200,
        "type": "Return"
      }
    ]
  }
}

主要键:

  • sys.idScript 的唯一标识符。用于单个查询、修改、删除、执行路径中的 {scriptId}
  • nameScript 的名称(1~64 个字符)。用于界面列表和管理识别。
  • definition:声明此 Script 做什么的 ScriptDefinition。由调用方法(method)、执行模式(executionMode)、语句(statements)数组和可选的 payload 模式(payloadSchema)构成。详细结构见下方的定义与名称以及 Script 概述的顶层结构

请注意 sys 中没有 statuspublisharchiveScript 不是发布到投递路径的资源,而是在管理 API 中编写和执行的资源。

系统属性 (sys)

所有 Script 都在 sys 对象中包含通用的系统属性。spacecreatedByupdatedByRefer 形态({ "sys": { "id", "type": "Refer", "targetType" } })呈现。

属性类型说明
idstring资源唯一标识符。
typestring资源种类。Script 始终为 "Script"
spaceRefer<Space>Script 所属的 Space
createdByRefer<User>创建的用户。
createdAtstring (date-time)创建时间。
updatedByRefer<User>最后修改的用户。
updatedAtstring (date-time)最后修改时间。
versioninteger (≥1)资源版本。每次创建、修改递增 1。

ContentContent TypeMediasys 中的 status(发布状态)和 publish(发布历史),Script 并不具有。 因为 Script 不会被发布。也没有 archive 属性。因此 Scriptversion 不涉及发布,纯粹随创建、修改的次数递增。

定义与名称 (name, definition)

Script 的正文属性有 namedefinition 两个。

属性必填说明
name必填Script 的名称。1~64 个字符。
definition必填ScriptDefinition。由下表的键构成。

definitionScriptDefinition)的键:

必填说明
method必填调用此 Script 的 HTTP 方法。为 GetPostPutPatchDelete 之一。执行时按此值匹配。
executionMode必填执行位置。Sync(在请求路径中即时)或 Async(后台)。
statements必填要执行的语句(statement)的有序数组。至少 1 个。
payloadSchema选填JSON Schema。若指定,则在执行前用此模式校验请求 payload。

放入 statements 数组的每个语句的种类和字段在 Statement 目录 中介绍,用于传递值的 { /pointer } 表达式在 值表达式 中介绍。

上面示例 "t6-http" 的 definitionmethodPostexecutionModeAsync,先用 Http 语句调用外部 API,再用 Return 语句返回其结果。像 Http 语句这样存在外部 I/O 的 ScriptexecutionMode 必须为 Async(参见下方的约束)。

约束

对象约束
name1~64 个字符,必填。
definition.statements至少 1 个,必填。
存在外部 I/O 的定义executionMode 必须为 Async(保存为 Sync 时会被拒绝)。
每个定义的外部调用最多 3 个(默认值)。
每个定义的 SetVar最多 5 个(默认值)。
每个定义的全部 statement最多 15 个(默认值,含嵌套)。

上述静态约束会在 Script 保存(创建、修改)时进行检查,违反时保存会被拒绝。保存时还会一并检查创建者是否实际拥有这些 statement 所使用的资源、动作权限(只要缺少任意一项,就以 WGL403015 拒绝)。详细规则和时间预算在 执行语义、约束与安全 中介绍。

Script 是计费(Billable)资源,每个 Organization 的数量按套餐受限(Free 3 / Basic 10 / Pro 50 / Enterprise 无限制)。达到上限后,新的 Script 创建会被拒绝(参见各套餐数量限额)。

API

下面列表、查询、创建、修改、删除端点的基准 URL 是 CMA 的 https://cma.weegloo.com/v1Authorization 头中需要用于认证 CMA 的 Bearer 令牌。修改操作为实现乐观并发控制,必须一并发送 X-Weegloo-Version 头(当前资源的 sys.version)。

执行(/execute)和轮询(/executions/{requestId})在 ACMA 中也以相同路径提供。此时基准 URL 为 https://acma.weegloo.com/v1,使用 ServiceUser 身份的 Bearer 令牌进行认证。编写(创建、修改、删除)在 ACMA 中不存在,为 CMA 专用。

上面执行、轮询示例的完成响应中没有 return。因为目标 Script 未到达带值的 Return 就结束了(此时 statusCode 为默认值 200)。若通过 Return 返回值,则响应中会带有 return(若 Return.isError 为真,则为 error)。响应的完整规则在 Script 概述的请求与响应 中介绍。