Use your OpenAPI 3 YAML spec to generate Node.js + Fastify code for your API!
Motivation behind this project
There are many good code generators on npm, however, I couldn't find one that really suits my needs.
Here's why:
- Generator should be written in JS/TS so I could contribute and/or change some logic if I need to
- Instead of being a tool that generates server "on-the-fly" (under the hood) from YAML every time you start it, I want "one-time" tool to generate server code
- Generated code structure should be readable & similar to ordinary server code, no abstractions and/or code specific to this generator
- Validation of requests/responses based on schema taken from OpenAPI spec
- Fastify support
- Ready for Docker
- Not abandoned
So this project was born.
- One-time operation, after generation you don't need original YAML file
- Easy to read - generated code looks just like normal server code, no abstractions.
- Uses Fastify - the fastest web framework for Node.js
- Validation based on ajv-oai
- Configured for Docker use (includes Dockerfile)
|- package.json
|- Dockerfile
|+ src/
|- index.js
|+ lib/
|+ routes/
|+ schema/
|+ services/
To use it from the CLI:
npm install -g openapi-fastify-codegen
Usage: ofc <YamlFile> [options]
Options:
-o, --output <outputDir> directory where to put the generated files
Example:
ofc patstore-expanded.yaml -o ./petstore
Clone this repo, and run this:
node cli.js tests/openapi3/petstore-expanded.yaml -o ./generated/petstore
to generate code from test YAML.
You can find generated code in example/petstore folder.
- Node.js v13.2+ (Project uses ES modules)
Any contributions are greatly appreciated.
If you have any suggestions/bug reports - please create an issue!
Distributed under the MIT License. See LICENSE
for more information.
- Swagger Code Generator - base for my generator
- OpenAPI > JSON Schema converter