【问题标题】:How to send an Array of Jsons in postman with Form-data如何使用 Form-data 在邮递员中发送 Json 数组
【发布时间】:2020-10-12 13:00:31
【问题描述】:

我正在尝试使用使用以下 Joi 验证的 API:

Joi.object({
    files: Joi.array().items(Joi.object({
        fileId: Joi.string().uuid().required(),
    })),
    folders: Joi.array().items(Joi.object({
        folderId: Joi.string().uuid().required(),
    }))
})

joi 验证还要求我将其作为 FormData 发送。我尝试了一些不同的东西,但无论我尝试什么,我只能发送一个字符串数组,如下所示:

文件:[“fileId:f28019d7-9268-4013-bacb-67ed96eb095f”,“fileId:51e99e3d-755a-4530-9eed-f08d20cbfe8b”]

那我怎么用邮递员寄呢?

【问题讨论】:

    标签: postman joi


    【解决方案1】:

    您可以使用 Postman 在批量编辑中提供以下值:

    files[1]:f28019d7-9268-4013-bacb-67ed96eb095f
    files[2]:51e99e3d-755a-4530-9eed-f08d20cbfe8b
    

    【讨论】:

      【解决方案2】:

      问题是您尝试发送字符串而不是对象:

      文件:Joi.array().items(Joi.object({ fileId: Joi.string().uuid().required(), }))

      在这里,您尝试将 fileId 设置为对象中的键(在 files 数组中)。所以你想要的是[{ fileId: "xyz" }]

      要实现这一点,您可以简单地stringify 数组数据。然后发送表单数据正文。

      let arr = [{ fileId: "xyz" }];
      JSON.stringify(arr); // outputs in console -> "[{"fileId":"xyz"}]"
      

      在 Postman 中,您可以将数组发送为:

      files:[{"fileId":"xyz"},{"fileId":"abc"}]
      

      (通过使用批量上传来做到这一点,这样就不会出现额外空格等问题)

      【讨论】:

        【解决方案3】:

        您可以像这样在正文中发送数组:

        【讨论】:

        • 我刚刚编辑了这个问题,我想我不清楚我需要它是表单数据
        【解决方案4】:

        不要使用form,而是尝试使用下面的原始字段并选择类型为json

        【讨论】:

        • 不支持的媒体类型。有一个仅允许 multipart/form-data 的验证。
        • 您能否在headers 选项卡中使用新标头发出与上述相同的请求,如下Content-Typemultipart/form-data。请试试这个,让我知道它是否有效。
        猜你喜欢
        • 1970-01-01
        • 2017-08-17
        • 2020-04-07
        • 1970-01-01
        • 2023-02-20
        • 2017-11-14
        • 2022-12-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多