一、背景
工作中,有时会遇到这样的情况:
例如,我的 VBA 程序需要调用下面这个接口:
GET /api/get_sample_testlines?CUID=BYD20-0000001-0001.C001
不同的 CUID,需要返回不同的 JSON。如果没有后台接口,程序就无法继续开发。
这时,Apifox 的 Mock 功能就是一个非常好的解决方案。


登录 Apifox,新建项目后,创建一个 GET 接口:
/api/get_sample_testlines
然后添加一个 Query 参数:
参数名 | 类型 |
|---|---|
CUID | string |
参数值保持为空即可。
因为真正调用接口时,CUID 会由程序动态传入,而不是固定某一个值。

进入 Mock 页面,新建两个 Mock 期望。

匹配条件:
Query
CUID = BYD20-0000001-0001.C001
返回:
{
"sample_id":"BYD20-0000001-0001.C001",
"testlines":[...]
}
如下所示:

匹配条件:
Query
CUID = BYD20-0000001-0001
返回:
{
"sample_id":"BYD20-0000001-0001",
"testlines":[]
}
如下所示:

这样,同一个接口就可以根据不同的 Query 参数返回不同的数据,模拟真实业务场景。
Apifox 会自动生成一个 Mock 服务地址,例如:
https://m1.apifoxmock.com/m1/8503313-8277466-default完整请求地址为:
https://m1.apifoxmock.com/m1/8503313-8277466-default/api/get_sample_testlines?CUID=BYD20-0000001-0001.C001如下所示:

需要注意的是,Apifox 中提供的 开发环境、测试环境、生产环境 默认只是示例地址,并不会返回 Mock 数据。
真正需要选择的是 云端 Mock 环境。

在 VBA 中,只需要动态拼接 URL:
url = baseUrl & "/api/get_sample_testlines?CUID=" & sampleID当传入:
BYD20-0000001-0001.C001
返回JSON内容:

当传入:
BYD20-0000001-0001
返回JSON内容:

当传入其他内容(例如BYD20-0000001-0002),由于未定义对应的Mock期望,所以返回空字典。

整个过程无需搭建服务器,也无需编写任何后端代码。
Apifox 不仅是一个接口调试工具,更是一款非常实用的 Mock 平台。
对于 Excel VBA、Python、Power Query 等办公自动化开发者来说,它有几个明显优势:
如果你的程序依赖 HTTP 接口,又暂时没有后端支持,不妨试试 Apifox,相信能帮你节省不少开发时间。