添加 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 正文中的变量值发送:

我可能误解了这个问题以及您想要实现的目标,但如果您提供更多详细信息,我很乐意更新我的答案。