Fastify 和 json 模式验证

问题描述

我正在尝试通过官方文档学习 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('/',{ 中的架构期望正文是一个字符串数组。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...