跳转到内容

构建一个场景

画布位于中央,添加面板和检查器分布在四周。节点可以用鼠标拖动,视图可以平移和缩放。

打开了添加面板的场景编辑器:常用节点在最上方,接着是添加、列表、循环、计时、数学、算法、数据格式、编码、UX 等分类

从添加面板中选取,它按分类组织:控制、组合(请求与连接)、列表、循环、时间、数学、 算法、数据格式、编码、界面、实用工具。

关联到某个请求的动作(HTTP 请求SOAP 请求,以及所有连接类动作) 需要指定它所驱动的项目内请求。

在一个动作中指定某个请求会建立一条强关联:该动作是按标识符引用这个请求的, 而不是引用一份副本。由此可以推出:

  • 这个请求依然是共享的 —— 修改它(URL、请求头、正文)会改变所有使用它的场景 在下一次执行时的行为;
  • 这条关联在请求被重命名或在树中被移动后依然有效:它既不依赖名称,也不依赖路径;
  • 从请求一侧看,smartbar 上有一个 **“已被场景使用”**按钮 —— 它会列出调用该请求的场景,并支持跳转过去。 在修改一个共享请求之前,这是应该养成的习惯动作;
  • 一个缺失的请求(被删除,或在打开项目时不存在)会让场景校验失败: 播放按钮保持禁用,出问题的节点会被标记出来 —— 绝不会出现悄无声息坏掉的场景。

若想在改动已保存版本的前提下重放同一个请求,请不要修改它, 而是使用覆盖请求中介绍的各种覆盖手段(快速设置、动作覆盖、连线)。

每个节点都有自己的字段,可以直接在节点上填写,也可以在检查器中填写。这些字段接受 带类型的值 —— 字符串、数值、布尔值、日期、Handlebars 表达式、变量、自定义列表、密钥…… —— 参见变量与环境

在支持的字段中,Ctrl+Space 会触发变量和辅助函数的自动补全。

从一个输出端口拉向一个输入端口。

有两条规则需要知道:

  1. 一个输入端口只接受一条连线 —— 只有 in 端口例外,它可以接受任意多条, 并因此起到屏障的作用。
  2. 纯信号输出不能接到纯值输入。 其余组合都是允许的:携带值的输出同时也可以充当触发器。

细节参见:端口与连线

一条连线可以携带一个选择器:应用于在途值的一个路径。

data.items[0].id
body['user-id']
status

正是它免去了在每次调用与其消费方之间插入一个转换节点的麻烦。选择器可以在创建连线时设置, 也可以稍后设置;清空它即可移除。

关联到某个请求的动作可以在不改动请求本身的情况下修改它。共有四个层次,按此顺序生效:

  1. 请求已保存的样子;
  2. 在动作上指定的一个快速设置快速配置)—— 这正是直接在场景中复用某个请求已保存变体的方式,无需重新录入;
  3. 在动作上填写的覆盖值
  4. 通过连线到达覆盖端口的值。

要用三套数据重放同一次调用,这就是干净的做法。

节点的右键菜单提供**“每收到一个事件就重放”**。启用后,该选项会把所有已连线的输入 变成非阻塞的“或”门:节点会在任意端口收到任意一个值时重新触发,而不再等待全部到位。

处理数据流(每一条 MQTT 消息、每一个 SSE 事件)时这是必需的,同时它也是打破完成环路的手段。

  • 一个 Input / Param 节点声明场景的参数。它们可以在启动时提供、在命令行中提供 (--param name=value),或在交互模式下于执行期间询问。
  • 一个 Output / Return 节点向调用方暴露一个结果 —— 当该场景被另一个场景通过 运行场景动作调用时非常有用。

Restorm 能自动整理一张图(自动布局);之后节点仍然可以手动拖动。 Ctrl+Z 撤销,Ctrl+Shift+Z 重做。

只要还存在校验错误,播放按钮就保持禁用:无效连线、缺失的请求、必填字段为空。 出问题的节点会被标记出来。