如何用Mockoon通过URL参数匹配数据桶中的硬编码Mock响应
Mockoon 匹配URL参数返回数据桶指定条目方法
你的问题出在数据桶的结构写法错误——把Mockoon的模板语法{{urlParam 'userId'}}直接作为对象键名,导致系统无法识别匹配逻辑,只能返回整个数组。按以下步骤调整即可实现参数匹配:
1. 修正数据桶结构
把每个用户的ID设为普通字段(比如id),去掉模板语法作为键名的写法,示例数据桶内容:
[ { "id": "10000", "firstname": "John", "lastname": "Doe", "friends": [] }, { "id": "10001", "firstname": "Archie", "lastname": "Bunker", "friends": [] } ]
假设这个数据桶的名称为users(需和后续模板中的名称一致)。
2. 在响应体中添加过滤模板
在API的响应体里,使用Mockoon的内置模板函数过滤数据桶:
{{data 'users' (find (data 'users') (equals 'id' (urlParam 'userId')))}}
模板逻辑说明
(data 'users'):获取名为users的整个数据桶数组(equals 'id' (urlParam 'userId')):创建匹配条件——数组中对象的id字段等于请求URL的userId参数find:从数组中筛选出符合条件的第一个对象- 外层
{{data ...}}:输出匹配到的单个用户对象
3. 可选:添加无匹配时的默认响应
如果请求的userId不存在,会返回null,可以添加默认错误响应:
{{default (data 'users' (find (data 'users') (equals 'id' (urlParam 'userId')))) '{"error": "User not found"}'}}
注意事项
- 确保数据桶名称和模板中的
'users'完全一致 - URL参数名要和API定义的
userID大小写一致(Mockoon对参数名大小写敏感)
内容的提问来源于stack exchange,提问作者Rubio
相关产品推荐
相关产品推荐

