我试图弄清楚为什么模式验证在 Fastify 中不起作用。我有以下代码:
const postOptions = {
schema: {
body: {
type: 'object',
properties: {
name: { type: 'string' },
parentId: { type: 'number' },
requiredKey: { foo: { type: 'string'} }
}
},
response: {
201: {
type: 'object',
properties: {
id: { type: 'number'},
name: { type: 'string'},
parentId: { type: 'number' }
}
}
}
}
}
fastify.post('/sponsor', postOptions, async (request, reply) => {
console.log(`POST /sponsor called`)
return { id: 2, name: 'Zenotis', parentId: 1 }
})
当我使用邮递员对其进行测试时,我可以将任何键和值与正文一起发送,并且一切正常。好像根本不检查。与响应相同。我正在使用 Fastify 版本 2.11.0
编辑:这是我发送的 json 正文:
{
"name": "Test",
"parentId": 5555555,
"foo": "bar"
}
这是我期望失败的:
{
"myName": "the field is not name",
"parentID": "The D is capitalized and this is a string",
"bar": "where did this field come from, it's not foo"
}
如果我发送这个身体,它会顺利通过。在所有这些情况下,如何将其配置为失败?