
Research
Security News
The Growing Risk of Malicious Browser Extensions
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
openapi-codegen
Advanced tools
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.
The 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.
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 :white_check_mark: | @jfiala | @MikeRalphson | |
objc | |||||
openapi | meta | outputs the input definition (in OpenAPI 3.0.x form) :white_check_mark: | @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) :white_check_mark: | |||
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 :white_check_mark: | |||
ze-ph |
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 |
FAQs
OpenAPI 3.0 CodeGen
The npm package openapi-codegen receives a total of 661 weekly downloads. As such, openapi-codegen popularity was classified as not popular.
We found that openapi-codegen demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.