使用 fast-json-stringify 响应的格式

Formats to use on a response with fast-json-stringify

我想做的是向来自 fastify 路由的模式响应添加验证。

根据 Fastify 的文档 here 我们可以看到这个

Ajv for the validation of a request fast-json-stringify for the serialization of a response's body

与改进和添加响应验证相关,我想做的是在发送响应时检查模式。

fast-json-stringify support different options, included format, but if you read the documentation, they said that they support JSON schema. Jsonschema has support for email format, that you can see here 作为内置格式,但是当我尝试在 Fastify 上使用它时,像这样:

{
  response: {
    200: {
      type: 'object',
      required: ['email'],
      properties: {
        email: {
          type: 'string',
          format: 'email',
        }
      }
    }
  }
}

并尝试 return 广告响应此

reply.code(200).send({ email: 'test' })

我唯一能做的验证是当我将类型设置为整数并尝试 return 一个字符串时。

您知道是否可以使用带有 fast-json-stringify 的 ajv 格式来向响应模式添加验证并使用来自 ajv 的格式并添加新格式吗?

非常感谢!

fast-json-stringify 进行序列化,而不是验证。

提供给它的 json 模式将仅用于序列化声明的 properties 和某些类型检查,如 integerarrays。

  • 不支持 enum 关键字
  • format 关键字仅支持日期 as documented:

为了达到您的目标,您应该使用此插件:fastify-response-validation 它将在序列化过程之前添加响应正文的验证步骤。