工作流管理 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;不能用手动规则路径绕过业务绑定。