Node.js-based codegen for OpenAPI documents. This project was initially a 24-hour hackathon. The local 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. Node.js LTS versions are supported.
npm i -g openapi-codegen
or
npm i
or
npx -p openapi-codegen cg ...
cg [options] {[path]configName} {openapi-definition}
Options:
--help Show help [boolean]
--version Show version number [boolean]
--filter Filter term to use with --list [string]
--list List available templates for provider (og or sc) [string]
-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.
const renderer = require('openapi-codegen'); // load a config and a definition renderer.main(definition,config,configName);
The local templates were 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.
You can also use the latest online templates from two providers: og
(openapi-generator) and sc
(swagger-codegen). The --list
and --filter
options allow you to see which templates are available. Note that using the online templates involves sending your API definition to a remote server.
See here for a partial list of template contributors.
Status of the template configurationsThe local templates with a status have a working (if not necessarily tested) configuration in the configs directory. Contributions are welcomed from the community of new and updated configurations and template updates.
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-axios client tested jaredpalmer 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-phThese 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 @MikeRalphsonRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4