跳转到内容

工作流管理 API

以下路径相对 /api/v1/stores/{storeId}。使用门店 REST 身份;管理手动规则需要门店内容管理权限和高级自动化模块。编译、保存规则定义、启用、试运行时,还要核对所选工具需要的权限。用个人 API 令牌时,POST、PUT、DELETE 均须带 Idempotency-Key。

请求 用途
GET /workflows/catalog、GET /workflows/codes 读取触发器、变量、工具、模板及编码上下文。目录可见不表示拥有所有动作权限。
POST /workflows/compile 正文 {"source":"…"}。成功返回 data.definition;语法或条件无效时按行列定位。只编译,不保存或执行。
GET /workflows?q=名称、GET /workflows/{id} 列出手动规则、读取当前定义、时间窗、启用状态和版本。
PUT /workflows/{id} 新建使用未占用的 32 位小写十六进制 ID。传名称及模板参数或定义,明确指定 active;修改传当前 version。冲突后重新读取。
POST /workflows/{id}/test 用已保存的规则或正文中的 definition / template 试运行。订单触发传 orderId,其他触发按需传 memberId、tableId 或 queueTicketId。
GET /workflows/{id}/runs、GET /workflows/{id}/runs/{runId} 分页查看运行;详情含当时的定义快照和步骤轨迹。
POST /workflows/{id}/runs/{runId}/retry 或 …/cancel 从失败步骤继续,或取消等待、排队、失败的运行。重试请求因断网重发时沿用原幂等键。

先编译一个不会执行业务动作的例子

链接到「先编译一个不会执行业务动作的例子」
{"source":"when ORDER_PAID { @done stop }"}

将正文提交到 /workflows/compile。成功时确认 data.definition.trigger.kind 为 ORDER_PAID,第一步的 id 和 type 分别为 done、stop。需要验证业务分支时,再把编译后的定义交给试运行接口,并传入本店已有对象。编译通过不代表已经保存,更不代表门店已经启用。

  • VERSION_CONFLICT:别人可能已更新规则,先读回比较,不要覆盖新版本。
  • ESCALATION_DENIED:检查响应指出的工具和权限;能编辑文档或查看目录不代表可以执行该工具。
  • WORKFLOW_HAS_RUNS:已有运行记录,改为停用。
  • 找不到一个明明存在的规则:先核对门店与来源。手动规则使用 /workflows,系统生成规则归 /system-workflows;不能用手动规则路径绕过业务绑定。