ozonep / openapi-fastify-codegen

Server Generator based on OpenAPIv3 spec file
MIT License
7 stars 1 forks source link

OpenAPI Fastify Code Generator

Use your OpenAPI 3 YAML spec to generate Node.js + Fastify code for your API!


npm

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.

Generated code features:

Generated code structure

|- package.json  
|- Dockerfile            
|+ src/
 |- index.js    
 |+ lib/       
 |+ routes/
 |+ schema/
 |+ services/

Install

To use it from the CLI:

npm install -g openapi-fastify-codegen

Usage

From the command-line interface (CLI)

  Usage: ofc <YamlFile> [options]

  Options:
    -o, --output <outputDir>       directory where to put the generated files

Example:

ofc patstore-expanded.yaml -o ./petstore 

Local Testing:

Clone this repo, and run this:

node cli.js tests/openapi3/petstore-expanded.yaml -o ./generated/petstore

to generate code from test YAML.

Example

You can find generated code in example/petstore folder.

Requirements

Contributing

Any contributions are greatly appreciated.
If you have any suggestions/bug reports - please create an issue!

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgements