邮递员:"Invalid data type. Must be either, array, boolean, number" 错误

Postman: "Invalid data type. Must be either, array, boolean, number" error

在 Postman 中创建 API 时出现以下错误:“无效数据类型。必须是数组、布尔值、整数、数字、对象或字符串之一

"type": "file"行转换为"type": "object"行时的错误已修复,但我不确定是否有适合这种情况的方法。因为这次更新,在Postman中发送请求时,请求可能无法通过。

"parameters": [
  {
      "in": "body",
      "name": "file",
      "description": "file",
      "required": false,
      "schema": {
          "type": "array",
          "items": {
              "type": "file"
          }
      }
  },
  ...
]

那么,如何解决 Postman 中的问题?

问题不在于 Postman,而在于 API 定义。 "type": "file" 不是用于模式和正文参数的有效类型值,此类型只能用于 in: formData 参数。

On the other hand, I do not add file while trying to test my app via Postman. For this reason, I just want to suppress the errors

在这种情况下,您可以将 "type": "file" 更改为 "type": "string" 以抑制导入错误。或者从 API 定义中删除整个有问题的操作。


如何在 Open 中正确定义文件上传API

API 定义试图描述文件数组的上传 - 但这在 OpenAPI 2.0 (swagger: '2.0') 中不受支持。 OAS2 仅支持通过 multipart/form-data 上传单个命名文件,在这种情况下 API 定义将如下所示:

{
  "swagger: "2.0",
  ...

  "paths": {
    "/something": {
      "post": {
        "consumes": [
          "multipart/form-data"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "file1",
            "type": "file"    // A single file sent via form field "file1"
          },
          {
            "in": "formData",
            "name": "file2",
            "type": "file"    // Another file sent via form field "file2"
          }
        ]
        ...
}

上传一组文件是 supported in OpenAPI 3 不过:

{
  "openapi": "3.0.0",
  ...

  "paths": {
    "/something": {
      "post": {
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                }
              }
            }
          }
        },
        ...

      }
    }
  }
}