如何在 Postman Collection 中指定 JSON 请求 body 示例

How to specify JSON request body example in Postman Collection

我正在以编程方式创建 Postman collections 并希望提供默认 JSON 请求 body 以使请求更容易。

我查看了规范,看不出如何指定它。有人有什么想法吗?这可以用 JavaScript 来完成吗,我用它来自动设置 headers 和环境变量。

这是我正在使用的 Postman Collection 规范定义,v2.1.0 草案 4:

请求由#/definitions/request指定。

body 被指定为以下之一。 JSON 未列出,因此通常使用 raw。这是显示 rawstring 类型但没有 属性 包含请求 body.

的默认值的摘录
{
  "body":{
    "oneOf":[
      {
        "type":"object",
        "description":"This field contains the data usually contained in the request body.",
        "properties":{
          "mode":{
            "description":"Postman stores the type of data associated with this request in this field.",
            "enum":[
              "raw",
              "urlencoded",
              "formdata",
              "file",
              "graphql"
            ]
          },
          "raw":{
            "type":"string"
          }
        }
      }
    ]
  }
}

是否有人知道 Postman 能够使用 pre-created 示例为 JSON 请求 body 指定示例,直接使用 collection 或通过 JavaScript?

更新

body 上显示的以下 YouTube 视频可以使用以下方法 JavaScript 进行动态设置。

const body = {
    "productId": 1234
};

pm.globals.set("body", JSON.Stringify(body));

https://www.youtube.com/watch?v=hSX7Dcjy000

使用这种方法,似乎接下来要弄清楚的是 Postman Collection 是否可以导入和访问自定义属性,例如x-properties,或者如果有其他方法可以通过重载现有的 属性 来加载示例内容。这似乎可以通过加载大量环境变量来完成,每个请求一个。最后一步可能是在用户首次启动端点时自动将正确的环境变量值加载到示例中 body。

以下是关于类似主题的更多信息:

https://learning.postman.com/docs/writing-scripts/script-references/postman-sandbox-api-reference/#scripting-with-request-data

您添加的 link 是使用 postman 测试和预请求部分编写脚本,而不是用于以编程方式创建 json。

您可以打开邮递员并点击collection的倒置汉堡菜单导出collectionjson。可以作为参考。

在生成的 json 请求中定义为:(仅 url,方法和正文部分不完整)

"method": "DELETE",
"header": [],
"body": {
    "mode": "raw",
    "raw": "{{requestbody}}",
    "options": {
        "raw": {
            "language": "json"
        }
    }
},
"url": {
    "raw": "{{url}}/resource1/resource2",
    "host": [
        "{{url}}"
    ],
    "path": [
        "resource1",
        "resource2"
    ]
}

这是从 postman 创建的 json。