添加 Postman 变量 in JSON Post Body inside key name fields
Adding Postman Variables in JSON Post Body inside key name fields
所以我一直在使我的 postman 集合尽可能动态,将所有在不同 API 调用期间仅略有变化的静态内容替换为变量,以大大减少工作量。
我还有一件事无法开始工作,那就是用变量构建 JSON 主体的部分。
这是我想要的结果,右边的键值工作得很好:
{
"act.getEntries": {
"act.authToken": "{{authToken}}",
"act.resourceId": "{{activelistid}}"
}
}
我想为所有 json 数组设置动态前缀,如下所示:
{
"{{prefix}}.getEntries": {
"{{prefix}}.authToken": "{{authToken}}",
"{{prefix}}.resourceId": "{{activelistid}}"
}
}
我无法在 JSON 正文中使用 JS 函数,所以我只能转义(所以使用 ""''+)
我试过这样做:
{
"\"" + '{{prefix}}'.getEntries": {
"act.authToken": "{{authToken}}",
"act.resourceId": "{{activelistid}}"
}
}
但最后,生成了一个请求正文,如下所示:
"{
"\"" + ""act." + ".getEntries": {
"act.authToken": "CJvGphuWp4wXOgJq1T6Yr0e_5aU1fvs2pXFDvJPBRnw.",
"act.resourceId": "Hp2hTKmMBABDdFhotbrvBdw=="
}
}"
如果有人以前尝试过,请告诉我,否则我会将其标记为不受支持。
在预请求和post-请求测试中,我可以使用适当的函数,所以很容易,即使 URL 是从变量创建的,但主体似乎不可能..
在 Body 之外,虽然仍然有限,但我可以像这样轻松地将变量插入字符串中:
"reference": {
"id": "",
"isModifiable": true,
"managerID": "iqzGK08BABCAXcbW2VGwrg==",
"referenceName": "ActiveList",
"referenceString": "<Resource URI=\"/All Active Lists/Personal/" + pm.variables.get("login") + "'s Active Lists/" + activeListName + "\" ID=\"\"/>",
"referenceType": 24,
"uri": "/All Active Lists/Personal/" + pm.variables.get("login") + "'s Active Lists/" + activeListName + "\""
我想我理解了这个问题,但我可能错了。这对我来说似乎很好用:
{
"{{something}}.getEntries": {
"{{something}}.authToken": {{my_value}},
"{{something}}.resourceId": {{my_value}}
}
}
我将这些保存为 environment
变量作为 POST 正文中引用的值 - 这些可以很容易地在预请求脚本中设置。
发送请求时,它通过 POST 正文中的变量值发送:
我可能误解了这个问题以及您想要实现的目标,但如果您提供更多详细信息,我很乐意更新我的答案。
所以我一直在使我的 postman 集合尽可能动态,将所有在不同 API 调用期间仅略有变化的静态内容替换为变量,以大大减少工作量。
我还有一件事无法开始工作,那就是用变量构建 JSON 主体的部分。
这是我想要的结果,右边的键值工作得很好:
{
"act.getEntries": {
"act.authToken": "{{authToken}}",
"act.resourceId": "{{activelistid}}"
}
}
我想为所有 json 数组设置动态前缀,如下所示:
{
"{{prefix}}.getEntries": {
"{{prefix}}.authToken": "{{authToken}}",
"{{prefix}}.resourceId": "{{activelistid}}"
}
}
我无法在 JSON 正文中使用 JS 函数,所以我只能转义(所以使用 ""''+)
我试过这样做:
{
"\"" + '{{prefix}}'.getEntries": {
"act.authToken": "{{authToken}}",
"act.resourceId": "{{activelistid}}"
}
}
但最后,生成了一个请求正文,如下所示:
"{
"\"" + ""act." + ".getEntries": {
"act.authToken": "CJvGphuWp4wXOgJq1T6Yr0e_5aU1fvs2pXFDvJPBRnw.",
"act.resourceId": "Hp2hTKmMBABDdFhotbrvBdw=="
}
}"
如果有人以前尝试过,请告诉我,否则我会将其标记为不受支持。
在预请求和post-请求测试中,我可以使用适当的函数,所以很容易,即使 URL 是从变量创建的,但主体似乎不可能..
在 Body 之外,虽然仍然有限,但我可以像这样轻松地将变量插入字符串中:
"reference": {
"id": "",
"isModifiable": true,
"managerID": "iqzGK08BABCAXcbW2VGwrg==",
"referenceName": "ActiveList",
"referenceString": "<Resource URI=\"/All Active Lists/Personal/" + pm.variables.get("login") + "'s Active Lists/" + activeListName + "\" ID=\"\"/>",
"referenceType": 24,
"uri": "/All Active Lists/Personal/" + pm.variables.get("login") + "'s Active Lists/" + activeListName + "\""
我想我理解了这个问题,但我可能错了。这对我来说似乎很好用:
{
"{{something}}.getEntries": {
"{{something}}.authToken": {{my_value}},
"{{something}}.resourceId": {{my_value}}
}
}
我将这些保存为 environment
变量作为 POST 正文中引用的值 - 这些可以很容易地在预请求脚本中设置。
发送请求时,它通过 POST 正文中的变量值发送:
我可能误解了这个问题以及您想要实现的目标,但如果您提供更多详细信息,我很乐意更新我的答案。