@ilinyhsergey/openapi-codegen

    2.0.0 • Public • Published

    OpenAPI-CodeGen

    Build status Greenkeeper badge

    Experimental port of swagger-codegen templates to Node.js. This project was initially a 24-hour hackathon. The model adaptor code is entirely original and has been reverse-engineered from the existing documentation and template usage.

    Work in progress

    Supports OpenAPI 3.0.x natively, and Swagger/OpenAPI 1.2 and 2.0 by internal conversion

    Usage

    Installing

    npm i -g openapi-codegen

    or

    • clone the repository, and
    • npm i

    CLI

    cg [options] {[path]configName} {openapi-definition}
    
    Options:
      --help           Show help                                           [boolean]
      --version        Show version number                                 [boolean]
      -d, --debug      Turn on debugging information in the model          [boolean]
      -f, --flat       Do not include config-name in output directory structure
                                                                           [boolean]
      -l, --lint       Lint input definition                               [boolean]
      -o, --output     Specify output directory         [string] [default: "./out/"]
      -s, --stools     Use swagger-tools to validate OpenAPI 2.0 definitions
                                                                           [boolean]
      -t, --templates  Specify templates directory                          [string]
      -v, --verbose    Increase verbosity                                  [boolean]
      -z, --zip        Create a .zip file instead of individual files      [boolean]
    

    e.g.

    node cg --verbose nodejs defs/generator.yaml
    

    In this case, the generated code will be written to the .out/nodejs directory.

    You can also load the OpenAPI definition from a URL.

    If you are using Node 6.x or lower, please specify the --harmony flag.

    API

    const renderer = require('openapi-codegen');
    // load a config and a definition
    renderer.main(definition,config,configName);

    Templates

    Templates are taken directly from swagger-codegen. This project is also licensed under Apache-2.0 for this reason. Generated code is explicitly covered by the Unlicense. Code to downconvert OpenAPI 3.0 definitions is taken from Angular-Swagger-UI and is MIT licensed.

    Contributors

    See here for a partial list of template contributors.

    Status of the template configurations

    The templates with a status have a working (if not necessarily tested) configuration in the configs directory.

    Click here to expand...
    Template Type Status README Authors (TODO) Config Maintainer
    _common meta contains Apache-2.0 and Unlicense licenses
    Ada client Untested
    akka-scala
    android
    apache2 configuration needs work
    apex
    aspnetcore
    bash client Syntax ok, needs testing @bkryza @MikeRalphson
    clojure client Untested
    codegen meta Demo only @MikeRalphson
    confluenceWikiDocs documentation Tested with Docker server
    cpprest
    csharp
    csharp-dotnet2 client Untested
    dart
    debug meta used for dumping the model state @Mermade @MikeRalphson
    Eiffel
    elixir
    erlang-client client Untested
    erlang-server server
    finch
    flash
    flaskConnexion server Needs testing
    go client Builds, needs testing
    go-server server Builds and runs
    Groovy ? untested
    haskell-http-client client
    haskell-servant server Untested
    htmlDocs documentation Appears to work
    htmlDocs2 documentation Appears to work, no console errors logged
    Java
    JavaInflector
    JavaJaxRS
    JavaPlayFramework
    Javascript client Untested
    Javascript-Closure-Angular client Untested
    JavaSpring
    JavaVertXServer
    JMeter meta Untested
    kotlin-client
    lua client Compiles OK
    lumen
    MSF4J
    nancyfx
    nodejs server tested @jfiala @MikeRalphson
    objc
    openapi meta outputs the input definition (in OpenAPI 3.0.x form) @Mermade @MikeRalphson
    perl
    php
    php-silex ? untested
    php-symfony
    pistache-server
    powershell
    python client needs testing @mpnordland
    qt5cpp
    r
    rails5
    restbed server Untested
    ruby
    rust
    rust-server
    scala
    scalatra
    scalaz client Untested
    sinatra server Syntax checks OK
    slim server Untested
    swagger meta outputs the input definition (in original form if OpenAPI 2.0)
    swagger-static documentation tested template modified to include partials
    swift
    swift3
    swift4
    tizen
    typescript-angular
    typescript-angularjs
    typescript-aurelia
    typescript-fetch client compiles with tsc ok
    typescript-jquery
    typescript-node client compiles with tsc ok
    undertow
    validator meta uses swagger2openapi's OpenAPI 3.0 validator internally
    ze-ph

    New Templates

    These templates are examples of how features of OpenAPI Codegen may be used, and best-practices in naming model properties.

    Template Type Status README Authors Config Maintainer
    testing.dredd testing In progress README @Mermade @MikeRalphson

    Documentation

    See also

    These projects use their own template model, not that of swagger-codegen

    Install

    npm i @ilinyhsergey/openapi-codegen

    DownloadsWeekly Downloads

    0

    Version

    2.0.0

    License

    Apache-2.0

    Unpacked Size

    6.83 MB

    Total Files

    2098

    Last publish

    Collaborators

    • ilinyhsergey