Save multiple schemas and decide which one use to serialize the payload.
Internally uses fast-json-stringify
to compile the schemas in extremely fast serialization functions, with all the benefits given by the library, such as preventing the leaking of sensitive data.
npm i any-schema-you-like --save
Register the plugin and pass to it an array of schemas with an id, the use reply.schema(id)
to decide which schema use to serialize your data.
const fastify = require('fastify')()
fastify.register(require('any-schema-you-like'), {
schemas: [{
id: 'schema1',
type: 'object',
properties: {
hello: { type: 'string' }
}
}, {
id: 'schema2',
type: 'object',
properties: {
winter: { type: 'string' }
}
}]
})
fastify.get('/:schema', (req, reply) => {
reply
.schema(req.params.schema)
.send({ hello: 'world' })
})
fastify.listen(3000, err => {
if (err) throw err
console.log(`server listening on ${fastify.server.address().port}`)
})
This project is kindly sponsored by:
Licensed under MIT.