我想要做的是从fastify路由向模式响应添加验证。
根据Fastify 这里的文档,我们可以看到以下内容
Ajv用于验证用于序列化响应主体的请求快速json-stringify。
与改进和添加响应验证相关,我要做的是在发送响应时检查架构。
速成支持不同的选项,包括格式,但是如果您阅读文档,他们会说他们支持JSON模式。Jsonschema支持电子邮件格式,您可以将这里视为内置格式,但当我尝试在Fastify上使用它时,如下所示:
{
response: {
200: {
type: 'object',
required: ['email'],
properties: {
email: {
type: 'string',
format: 'email',
}
}
}
}
}然后试着回复广告
reply.code(200).send({ email: 'test' })唯一可以进行的验证是将类型设置为整数并尝试返回字符串。
您知道是否可以使用ajv -格式和快速json-stringify来向响应模式添加验证,并使用ajv中的格式并添加新的?
事先非常感谢!
发布于 2021-02-10 14:22:57
fast-json-stringify执行序列化,而不是验证。
提供给它的json模式只用于序列化声明的properties和某些类型检查(如integer或array)。
enum关键字format关键字用于日期如文件所示

为了达到您的目标,您应该使用这个插件:fastify-response-validation,它将在序列化过程的响应体之前添加一个验证步骤。
https://stackoverflow.com/questions/66125930
复制相似问题