在swagger中将输入作为数组不起作用

在swagger中将输入作为数组不起作用,swagger,swagger-ui,Swagger,Swagger Ui,我有以下代码用于我的招摇过市文档。在这里,我试图创建一个API,在这里我希望将输入作为一个对象数组。到目前为止,我正在做如下事情 { method: 'POST', path: '/api/Route', handler: function(request, reply) { //some operations reply('Success'); }, config: { description: 'Cre

我有以下代码用于我的招摇过市文档。在这里,我试图创建一个API,在这里我希望将输入作为一个对象数组。到目前为止,我正在做如下事情

{
    method: 'POST',
    path: '/api/Route',
    handler: function(request, reply) {
        //some operations
        reply('Success');
    },

    config: {
        description: 'Create a Route',
        tags: ['api', 'user'],
        auth: 'UserAuth',
        validate: {
            payload: {
                "array": [{
                        userId: Joi.string().trim().required(),
                        status: Joi.number().required()
                    },
                    {
                        userId: Joi.string().trim().required(),
                        status: Joi.number().required()
                    },
                    {
                        userId: Joi.string().trim().required(),
                        status: Joi.number().required()
                    }
                ]
            }
        },
        plugins: {
            'hapi-swagger': {
                responseMessages: swaggerDefaultResponseMessages
            }
        }
    }
}
"userData": [{
             "userName": "string", // objects
             "status": "string"
         },
         {
             "userName": "string", // objects this way you can add more
             "status": "string"
         }
     ]
那么,当我运行上面的代码时,实际上发生了什么呢。
. 所以请任何人告诉我,为什么我没有在swagger文档中得到整个数组,而只是得到数组的一个元素。我还看到了以下内容,但无法理解他们在哪个文件中进行这些更改。有人能帮忙吗?提前感谢。

您可以使用Joi的数组验证。然后在输入中,您可以将数组传递给它。为此,您只需要在有效负载中编写以下代码,而不是您目前正在编写的代码

payload: {
         userData: Joi.array().items({
             userName: Joi.string(),
             status: Joi.string()
         })
     }
之后,您的招摇过市文档看起来像这样

userData是您的对象数组。您可以按如下方式给出对象的输入数组

{
    method: 'POST',
    path: '/api/Route',
    handler: function(request, reply) {
        //some operations
        reply('Success');
    },

    config: {
        description: 'Create a Route',
        tags: ['api', 'user'],
        auth: 'UserAuth',
        validate: {
            payload: {
                "array": [{
                        userId: Joi.string().trim().required(),
                        status: Joi.number().required()
                    },
                    {
                        userId: Joi.string().trim().required(),
                        status: Joi.number().required()
                    },
                    {
                        userId: Joi.string().trim().required(),
                        status: Joi.number().required()
                    }
                ]
            }
        },
        plugins: {
            'hapi-swagger': {
                responseMessages: swaggerDefaultResponseMessages
            }
        }
    }
}
"userData": [{
             "userName": "string", // objects
             "status": "string"
         },
         {
             "userName": "string", // objects this way you can add more
             "status": "string"
         }
     ]