问题描述
我正在尝试通过官方文档学习 fastify。我对使用 json 模式验证传入的 post 请求非常感兴趣。按照我添加到路线中的说明进行操作:
fastify.addSchema({
$id: 'http://example.com/',type: 'object',properties: {
hello: { type: 'string' }
}
})
fastify.post('/',{
handler() { },schema: {
body: {
type: 'array',items: { $ref: 'http://example.com#/properties/hello' }
}
}
})
现在的问题是我写不出一个可以被这个schema接受的json。根据我的基本理解,应该接受如下所示的简单帖子请求
[
{
"hello": "bye"
},{
"hello": "bye bye"
}
]
但是服务器一直告诉我body[0] should be string
。我哪里错了?
解决方法
引用 $ref: 'http://example.com#/properties/hello'
指向 hello
属性架构值,即 { type: 'string' }
。
这意味着 fastify.post('/',{
中的架构期望正文是一个字符串数组。