你的前端团队进度受阻了。设计稿已经定稿,界面也开发了一半,唯一阻碍进度的就是一个尚未实现的 API。后端开发还需要一个迭代才能完成,因此 UI 没有任何真实的接口可以调用。通常的权宜之计是使用本地 mock,但在你合上电脑的那一刻,它就失效了。接着,身处另一个时区的同事正在调用的接口就会挂掉。
这正是 Apifox 通过云端 mock 所解决的痛点。不同于仅在一台机器上存活的本地 mock,你将获得一个托管在 mock.apifox.com 上的公共 URL,它会全天候保持运行。在后端代码写出第一行之前,前端、QA 和合作伙伴的开发人员都可以调用这些逼真的接口。如果你想先了解 mock 能为团队带来什么更广泛的价值,我们关于什么是 API mock 以及何时使用它的入门指南可以为你奠定基础。至于公共 mock URL 如何融入请求处理的机制,关于 HTTP 请求/响应模型的 MDN 参考文档 是个不错的温习资料。
什么是云端 mock,以及为什么本地 mock 远远不够
Apifox 会为你设计的每个 API 生成一个 mock 接口。默认情况下,该 mock 是本地 mock:它在你的 Apifox 实例上运行,并在你开机时进行响应。一旦你关机,该接口就会停止响应。这对于单人调试来说没问题,但一旦有其他人依赖这个 URL,它就会宣告失效。
云端 mock 就是解决方案。它是一个持续可用的 mock 接口,独立于任何单台机器存在。即使你同事的电脑处于休眠状态,或者你的笔记本电脑装在包里,云端 mock 也会 7x24 小时持续响应请求。该接口托管在 Apifox 的云端服务上,因此其可用性与谁在线无关。
实际的好处在于实现了干净利落的交接。你设计好契约,开启云端 mock,然后分享一个 URL。前端基于逼真的数据进行构建,QA 根据真实的响应结构编写测试用例,与你对接的合作伙伴也可以立即开始连接他们的客户端。没有人需要等待后端,也没有人需要等待你来维持服务运行。如果你正在跨地区协调这一过程,那么与全球团队共享 mock 服务端和环境的模式将更深入地阐述这一工作流。
启用云端 mock 并获取你的公共 URL
让我们用一个真实的 API 来演示一下。假设你正在构建一个 users 服务,其中包含一个返回客户记录列表的 GET /users 接口。以下是将其转化为可分享的云端接口的方法。
步骤 1:开启云端 mock
打开你的项目,前往 项目设置 > 功能设置 > Mock 设置。开启 云端 Mock 开关。该开关会指示 Apifox 将你的 mock 托管在其持久运行的云端服务上,而不仅仅是在本地提供服务。
每个项目您只需执行一次此操作。开启后,项目中的每个接口除了本地 URL 之外,都会获得一个云端 mock URL。
要为你的项目开启云端 Mock,需要:
1.在项目中打开 “项目设置”
2.选择 “功能设置 -> Mock 设置”
3.启用 “云端 Mock”

步骤 2:复制云端 mock URL
打开您想要共享的接口,在本例中为 GET /users。转到其 Mock 标签页并复制云端 mock URL。您将获得类似于以下格式的 URL:
https://mock.apifox.com/m1/2689726-0-default/users?apifoxToken=GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi
路径结构遵循以下模式:mock.apifox.com/m1/<projectId>-<num>-<env>/<path>。Apifox 会自动为您构建该路径,因此您无需手动拼接。请注意,文档中仅通过示例展示了此结构,而非发布固定的模板,因此请以复制的 URL 为准,不要尝试自行构建。
步骤 3:在 Apifox 中即时测试 mock
在将 URL 提供给其他人之前,请确认它返回的内容符合您的预期。在同一个 Mock 标签页中,针对该 mock URL 发送一个测试请求。Apifox 将发起该请求并直接在此处显示响应。您可以立即可视化查看生成的数据是否正确。
GET /users 的 mock 响应可能如下所示:
[
{
"id": 1,
"name": "Amelia Turner",
"email": "amelia.turner@example.com",
"city": "Portland"
},
{
"id": 2,
"name": "Marcus Bell",
"email": "marcus.bell@example.com",
"city": "Austin"
}
]
这些值并非硬编码。Apifox 会读取您数据模型的字段名称和类型,并生成与之匹配的合理数据,这使得 mock 数据对于需要渲染逼真表格的前端非常有用。
步骤 4:在浏览器中打开 URL
对于 GET 请求,云端 mock URL 可以直接在 Web 浏览器中运行。将其粘贴到地址栏中,您就会看到 JSON 响应。这是您可以提供给非技术利益相关者的最快完整性检查方式:无需客户端,无需 curl,只需一个可以返回数据的链接。
除了快速查看之外,您的前端可以像调用其他任何接口一样调用它:
curl "https://mock.apifox.com/m1/2689726-0-default/users?apifoxToken=GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
这就是整个闭环。设计接口,启用云端 Mock,复制 URL,您的团队就可以无阻碍地开展工作了。
使用 Token 认证锁定 mock
公开的 URL 非常方便,但有时甚至过于方便了。如果您的 mock 反映了尚未发布的功能或您不想公开的合作伙伴集成,您可以对其进行访问限制。
转到项目设置 > 功能设置 > Mock 设置,并将访问权限设置为 Token 认证(Token Authentication)。开启后,每个请求都必须携带有效的 apifoxToken,否则请求将被拒绝。您可以通过以下三种方式提供 Token:
作为 URL 的 query 参数,这正是复制的 URL 中已使用的方式:
curl "https://mock.apifox.com/m1/2689726-0-default/users?apifoxToken=GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
作为请求 header,这样可以避免将 Token 暴露在 URL 以及服务端日志中:
curl "https://mock.apifox.com/m1/2689726-0-default/users" \ -H "apifoxToken: GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
或者在 form-data 或 x-www-form-urlencoded 请求中作为名为 apifoxToken 的 body parameter 传递,这适合那些发送表单 body 的客户端。
对于前端代码,使用 header 的方式通常是最干净的。它能避免将 Token 暴露在记录完整 URL 的日志中,并将凭证与资源路径分离开来:
javascript const res = await fetch( "https://mock.apifox.com/m1/2689726-0-default/users", { headers: { apifoxToken: "GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi" } } ); const users = await res.json();
需要提前规划的一点是:如果你在已经分享了普通 URL 之后才启用 Token 认证,那么每个调用方都需要添加该 Token,否则他们的调用将会失败。请协调好这一切换过程,以免测试(QA)和合作伙伴因请求被拒绝而无所适从。
使用本地化(locales)生成符合特定区域的真实数据
如果一个 mock 针对每条记录都返回 "name": "string",这对于你的 UI 没有任何测试价值。而一个能够返回真实的姓名、地址和电话号码的 mock,能让前端在真实数据接入之前就捕获布局 bug、文本溢出和格式化问题。Apifox 在底层通过 Faker.js 来实现这一点,而本地化(locale)控件对于国际化产品来说尤其有用。
默认本地化(locale)的工作原理
默认情况下,Faker 会遵循你项目的语言设置。你可以在项目设置 > 基本设置中进行配置,在此处选择的任何语言都会成为所有生成的 mock 值的默认本地化(locale)设置。将项目设置为法语,你获取的 mock 姓名和地址就会自带“法国风味”,无需对每个字段进行单独配置。
为整个项目重写本地化(locale)设置
如果你希望 mock 数据使用与项目语言不同的特定本地化(locale)设置,可以进行重写。前往项目设置 > 功能设置 > Mock 设置,然后从下拉菜单中选择一个 Faker 本地化(locale)选项。对于项目中的每个字段,该重写设置的优先级都高于“基本设置”中的默认项目语言。
这在测试国际化时非常方便。将项目本地化(locale)指向日本,所有生成的地址、姓名和电话号码都会反映该地区的信息,这样你就可以查看 UI 在面对非拉丁字符和不同地址格式时的表现。自动生成这种基于数据模型(schema-aware)的数据本身就是一个独立的主题,关于 Apifox 的智能 mock 及其如何读取数据模型的详细介绍,在生成数据方面有更深入的阐述。
按字段重写本地化(locale)设置
有时,你可能需要某个字段使用与其他字段不同的本地化设置,例如包含混合地区的客户列表。你可以使用 locale parameter 直接在 mock 表达式中设置本地化:
{{$person.fullName(locale='ja')}}
这样会仅针对该字段输出像 田中 太郎 这样的日语姓名,而响应的其余部分仍遵循项目的 locale 设置。优先级分为三个层级:字段级 locale 覆盖项目级 locale,而项目级 locale 又会覆盖“基本设置”中的默认语言。因此,你可以设置一个合理的项目默认值,仅在确实需要特例的字段上进行字段级覆盖。
关于范围的简要说明:文档中以 ja 作为示例,并未公布支持的完整 locale 列表,因此在实际使用前,请在 Apifox mock 文档中确认你目标区域的具体代码。Faker 自身的规范记录在 Faker.js locale 参考中。
同时匹配时区
时间也有类似的控制项。项目级的默认值位于项目设置 > 功能设置 > Mock 设置中,你也可以通过 mock 表达式中的 timeZone parameter 对单个字段进行覆盖。如果你的 UI 需要渲染时间戳,这将确保生成的 createdAt 值与你模拟的区域保持一致,而不是默认使用你服务端所在的位置。
通过 locale 和时区控制,你可以基于同一个接口数据模型,创建出逼真模拟日本用户群、德国用户群或混合国际化人群的 mock。至于这所解锁的更广泛的应用场景,非常值得一读实用的 API mock 使用案例汇总。
Cloud Mock 对比自托管 mock
Cloud Mock 是 Apifox 的托管方案,适用于大多数团队。如果你的组织有数据驻留限制,或者规定不能将测试流量路由到第三方的云端,Apifox 也支持在自己的基础设施上运行 mock 服务。这种权衡非常直接:云端选项无需配置且始终可用,而自托管则让你拥有完全的控制权,代价是需要自己运行该服务。如果这符合你的情况,可以参考关于如何自托管 Apifox mock 服务端的指南。对于正在权衡各种托管方案的团队,在线 API mock 工具的对比分析展示了整体的市场格局。
至于版本方案限制,一个坦诚的回答是:此处介绍的 Cloud Mock 和 locale 功能并未说明有特定的版本方案要求,因此最靠谱的做法是在你自己的账户中检查当前可用性,而不是直接相信博客文章中的说法。你可以下载 Apifox 并端到端体验完整流程,看看你的工作区具体包含哪些功能。
使用 Apifox CLI 自动执行工作流
Apifox 中的 mock 功能属于 GUI 和云端能力。Mock 响应是根据你的接口数据模型自动生成的,并由 Apifox 的托管引擎提供服务,而不是通过你在终端运行的任何程序来提供。所以,坦白地讲:Apifox CLI 并不会启动或运行 mock 服务端。它的作用是保持 mock 的输入数据准确无误。
CLI 和像 Cursor 或 Claude Code 这样的 AI 编程 Agent 可以创建和更新项目中的接口和数据模型。由于云端 mock 通过读取这些数据模型来生成数据,因此保持接口定义最新可以确保在 API 演进时 mock 输出的准确性。当你使用 Agent 工具添加字段时,mock 会自动反映这一变化,无需手动编辑。
接着,一旦 mock 扫清了前端开发的障碍,且真实的后端开发完成,同一个项目中的测试场景就可以在无头(headless)模式下针对其运行。CLI 的执行命令会根据 mock 所描述的同一契约来验证运行中的后端:
apifox run -t <scenario_id> -e <env_id> -r cli
这条单一的命令会在特定环境下运行已保存的测试场景并报告结果,从而使扫清 UI 开发障碍的 mock 与验证后端的测试都能追溯到同一个单一可信源。在 Apifox 中打开你的场景,直接复制已自动填充了 -t 场景 ID 和 -e 环境 ID 的生成命令,而无需手动拼凑参数。关于如何将其集成到流水线中,请参阅在 CI/CD 流水线中运行 Apifox 的指南。
FAQ
当关闭 Apifox 时,云端 mock URL 还能继续工作吗?
是的,这正是云端 mock(Cloud Mock)的核心意义所在。与本地 mock 在宿主机关闭时就会停止响应不同,云端 mock 由 Apifox 的基础设施提供服务,并保持 24/7 全天候可用。无论你的电脑是否开机,你的团队成员都可以访问它。
我可以直接在浏览器中使用云端 mock URL 吗?
对于 GET 请求,是的。将包含 apifoxToken query 参数的完整 URL 粘贴到地址栏中,你就能看到 JSON 响应。对于其他请求方法,或者为了避免将 Token 留在 URL 历史记录中,你可以使用 curl 等工具或前端客户端进行调用,并将 Token 作为 header 进行传递。
如果不包含 Token 的请求会发生什么?
如果你将访问权限设置为 Token 鉴权,任何不带有效 apifoxToken 的请求都将被拒绝。你可以在 query 参数、请求 header 或表单请求中的 body 参数中提供它。如果你在分享了普通 URL 之后启用了 Token 鉴权,请告知你的调用方,以便他们在接口调用失败前添加该 Token。
如何获取符合特定国家/地区格式的 mock 数据?
在“基本设置”中设置项目区域语言,或在“功能设置 > Mock 设置”下为整个项目进行覆写,或者在 mock 表达式中通过 locale 参数来覆写单个字段,例如 {{$person.fullName(locale='ja')}}。字段级的优先级高于项目级,而项目级又高于“基本设置”中的默认值。智能 mock 教程展示了基于数据模型的生成是如何与此相结合的。
我应该使用云端 mock(Cloud Mock)还是无头 mock 工具?
云端 mock 非常适合那些希望拥有与 API 设计相绑定的、托管且零维护接口的团队。如果你需要将 mock 嵌入到完全没有 GUI 的自动化构建中,这篇关于无头 mock 工具的调研对比了各种选项及其适用场景。OpenAPI Initiative 规范是大多数此类工具的基石,因此无论你选择哪条路线,编写一份清晰的规范都会让你受益匪浅。
总结
仅存在于你本地电脑上的 mock 只能解决一个人的阻塞问题。云端 mock 可以将其转化为公开的 mock.apifox.com URL,供你的整个团队进行开发对接。在需要限制访问时它支持 Token auth,在需要让特定地区的数据看起来更真实时还支持本地化控制。设计接口、打开开关、分享链接,前端就无需再等待后端。下载 Apifox 以创建你的第一个可共享的云端 mock,完全免费,无需信用卡。
开发必备:API 全流程管理神器 Apifox
介绍完上文的内容,我想额外介绍一个对开发者同样重要的效率工具 —— Apifox。作为一个集 API 文档、调试、设计、测试、Mock、自动化测试于一体的工具,Apifox 是目前提升研发效率的首选。
如果你正在开发项目,不妨试试其极其友好的界面设计,它完全兼容 Postman 和 Swagger 数据格式,导入数据非常方便,,即使是新手也能很快上手,点击这里即可注册使用。

值得一提的是,除了个人和常规团队使用,针对有高安全合规要求、或需要在内网环境协作的企业,Apifox 还提供了深度定制的私有化部署方案。
获取专属报价与部署方案
详细的私有化部署系统架构与安全白皮书
针对您公司规模的专属报价单
免费的 1v1 专属产品演示 (Demo) 机会