Nuclear Powered Mushroom

    openapi-fastify-codegen

    1.0.2 • Public • Published

    OpenAPI Fastify Code Generator

    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.

    Generated code features:

    • 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)

    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

    • Node.js v13.2+ (Project uses ES modules)

    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

    Install

    npm i openapi-fastify-codegen

    DownloadsWeekly Downloads

    7

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    154 kB

    Total Files

    39

    Last publish

    Collaborators

    • ozonep