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