跳到主要内容

Actions

action 定义 expectation 命中时 LiveMock 如何回应。共有三种 action:

Action列表中的徽章作用
自定义响应(custom response)RESPONSE返回你自己写的状态码、响应头和响应体。
ProxyPROXY把请求转发到另一台主机并返回它的响应。也支持代理 WebSocket 连接。
StaticSTATIC从运行 LiveMock 的机器上的某个目录提供文件。

创建 action​

在 Expectation 详情视图中点击 Action 卡片上的 Add action(如果已有 action,则点击铅笔图标)。对话框有三个标签页——Custom response、Proxy 和 Static——点击 Save action 后应用改动。一条 expectation 恰好只有一个 action:切换标签页会把现有 action 转换过去,而不是新增第二个。没有任何 action 的 expectation 在匹配时会被跳过,所以记得给它加一个——空的 expectation 匹配不了任何东西。

自定义响应(custom response)​

自定义响应 action

字段含义
HTTP status响应的状态码,例如 200 或 404。
Response typeJSON 或 TEXT。它决定响应的 Content-Type。
Content handlerNONE 按原样返回内容;MOCKJS 用 Mock.js 模板渲染内容。
Response headers追加到响应中的额外响应头。
Content响应体。

Mock.js 模板​

把 content handler 设为 MOCKJS 后,内容就是 Mock.js 模板,数据会在每次请求时重新生成:

{
"id": "@id",
"name": "@name",
"email": "@email",
"createdAt": "@datetime"
}

Proxy​

Proxy action

字段含义
Host目标主机,例如 api.stripe.com。字段前面的协议选择器用于选择 http:// 或 https://;粘贴完整 URL 时,它的协议会自动移入该选择器。主机名不能包含路径。端口始终使用协议的默认值(http 为 80,https 为 443),没有单独的目标端口字段。
Prefix remove转发前从请求中移除的路径前缀,例如 /api:请求 /api/users 会被转发为 /users。
Request headers追加到发往目标主机的请求中的请求头。
Response headers在响应发回之前追加到响应中的响应头。
Handle cross为响应添加宽松的 CORS 头。
Allow credentials与 Handle cross 一起使用时,发送 Access-Control-Allow-Credentials: true,让浏览器客户端可以携带 cookie。
Support websocket同时转发 Upgrade: websocket 连接。交换的消息会记录在请求记录中。

Static​

Static action

字段含义
Folder path运行 LiveMock 的机器上的目录绝对路径,例如 /home/user/mock-assets。相对路径会基于服务的工作目录解析,在 Docker 中该目录是 /app。
URL prefix该前缀下的请求由这个目录提供;路径的剩余部分用作文件路径。留空则按请求路径原样提供。

例如,目录为 /srv/assets、前缀为 /static 时,请求 /static/logo.svg 会返回 /srv/assets/logo.svg。前缀之外的请求或不存在的文件会得到 404。

Static action 详情

延迟(delay)​

延迟不属于 action:它在 expectation 自身上设置(Timing & state),对每一种 action 都生效。延迟为 5000 的 expectation 会等待五秒再响应,很适合复现客户端的超时。

备注

proxy 的主机名没有端口字段:连接总是发往所选协议的默认端口,因此监听自定义端口(例如 localhost:3000)的后端无法被直接指向。可以在这种后端前面放一个反向代理,或把主机名指向已经解析到正确服务的域名。