假设我有一个API端点/bar
返回:
{
"fooIds": [1,2,3]
}
和一个我想使用这些ID调用的/foo/<id>
端点。
有没有办法让邮递员打给/bar
端点并随后打给/foo
?
答案 0 :(得分:2)
在Postman中创建一个具有两个请求的集合。第一个用于/bar
,第二个用于/foo/{{id}}
,其中{{id}}
是存储在全局变量或环境变量中的Postman参数(两个位置都可以,下面的示例使用全局变量)。
然后在第一个请求的测试脚本中使用以下方式将fooId保存到全局变量中:
pm.globals.set('fooIds', pm.response.json().fooIds.join(','));
在第二个请求的预请求中
// fetch the fooIds into an array (leaves it undefined if not found)
const fooIds = pm.globals.has('fooIds') && pm.globals.get('fooIds').split(',');
// if fooIds was found, and has a first element, save it
fooIds && fooIds[0] && pm.globals.set('id',fooIds.shift()); // .shift() removes the first element
// save the updated fooIds back to the globals
pm.globals.set('fooIds', fooIds.join(','));
注意:当fooIds = []
时,fooIds.join(',')
返回“”,并将全局变量设置为“”会将其删除。
最后是第二个请求的测试脚本
pm.globals.has('fooIds') && postman.setNextRequest('nameOfFooRequest')
如果您在Postman Collection Runner中运行该程序,那应该(希望)遍历id的数组。
(运行前请务必保存,因为可能会有无限循环)
让我知道您是否有任何问题。