我的swagger文档有以下代码。在这里,我试图创建一个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
}
}
}
}
所以,当我运行上面的代码时,swagger会创建像这样的文档。 this is a link to the image。所以请任何人都可以告诉我为什么我没有在swagger文档中获取整个数组而只获得数组的一个元素。我也看到了以下question但无法理解他们在哪个文件中进行这些更改。有人可以帮忙吗?提前致谢。
你可以使用Joi的数组验证。然后在输入中,您可以将数组传递给它。为此,您只需要在有效负载中编写以下代码,而不是当前正在编写的代码。
payload: {
userData: Joi.array().items({
userName: Joi.string(),
status: Joi.string()
})
}
之后你大摇大摆的文档看起来像这样。
userData是您的对象数组。你可以给出如下的输入对象数组。
"userData": [{
"userName": "string", // objects
"status": "string"
},
{
"userName": "string", // objects this way you can add more
"status": "string"
}
]