OAS 3.x to Fastify routes automation
const fastify = require('fastify')()
const spec = require('./petstore.json')
// your handler object properties map to the OAS "operationId"
const handler = {
listPets: () => { ... }
createPets: () => { ... }
showPetById: () => { ... }
}
fastify.register(require('oas-fastify'), { spec, handler })
This package does not support OAS Yaml format, but you can easily convert to JSON before calling `oas-fastify`
using js-yaml
const yaml = require('js-yaml')
const fs = require('fs')
const spec = yaml.safeLoad(fs.readFileSync('openapi.yml', 'utf8'))
fastify.register(require('oas-fastify'), { spec, handler })
using apidevtools/swagger-cli
npx apidevtools/swagger-cli bundle spec/openapi.yml --outfile spec.json
The plugin accepts an options
object with the following properties:
spec
: a valid OpenAPI Specification JSON objecthandler
: an object with properties that map to the spec'soperationId
names, with the values as functions that will handle the request
const spec = {
"paths": {
"/pets": {
"get": {
"operationId": "listPets",
...
}
}
}
}
const handler = {
listPets: function (request, reply, fastify) {
// fastify instance passed in for convenience
reply.send({ hello: 'world' })
}
}
Author: Ahmad Nassri • Twitter: @AhmadNassri