我有下面的代码用于我的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会创建这样的文档。这是指向图像的链接。。所以,请任何人告诉我,为什么我不能在swagger文档中获得整个数组,而只获取数组的一个元素。我还看到了下面的问题,但无法理解它们在哪个文件中进行这些更改。有人能帮忙吗?提前谢谢。
发布于 2018-03-02 05:48:50
您可以使用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"
}
]https://stackoverflow.com/questions/49048682
复制相似问题