Fastify 和 json 模式验证

Fastify and json schema validation

我正在尝试通过官方文档学习 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' }
            }
        }
    })

现在的问题是我不能写一个可以被这个模式接受的json。根据我的基本理解,应该接受像下面这样的简单 post 请求

[
    {
        "hello": "bye"
    },
    {
        "hello": "bye bye"
    }
]

但是服务器一直告诉我 body[0] should be string。我哪里错了?

引用 $ref: 'http://example.com#/properties/hello' 指向 hello 属性 架构值,即 { type: 'string' }

这意味着 fastify.post('/', { 中的模式期望正文是一个字符串数组。