mrkeyoor.com_
Tue 01 Sept 17:40 UTC
Dev Toolsevaluationupdated 26 Aug 2026

openapi-generator review

OpenAPI Generator reads an OpenAPI description and produces client SDKs, server scaffolds, API documentation, or related configuration for many languages. It saves teams from hand-writing repetitive request models and endpoints, while leaving them responsible for checking the generated code.

+24stars / 7d
Verdict

Our measured sample installed in 12 seconds and only used 6 MB, but its audit found 29 known vulnerabilities and it had no build or test target. OpenAPI Generator is still the practical shortlist choice for broad, multi-language generation, provided every output is compiled and tested as owned code. Choose a narrower generator when one language and one artifact type cover the job.

We ran it

Lab card: what happened when we ran openapi-generatorScreenshot of openapi-generator (openapi-generator.tech)
Install✓ · 12s77 packages · 6 MB
Buildn/ano build script
Testsn/ano test script
Known vulns294 critical · 19 high · 1 moderate · 5 low (npm audit)
Repo70126 files~5,777,575 lines of source · 338.8 MB · 111 CI workflows

Answers from our run

Does openapi-generator build from source?

Dependencies installed in 12 seconds (77 packages), and the project has no separate build step. We cloned commit 80e8788 into a clean Debian container with 3 CPUs and no project-specific setup.

Does openapi-generator have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does openapi-generator have known vulnerabilities in its dependencies?

npm audit flagged 29 known advisories in the dependency tree, including 4 critical at the time of our run.

Who should not use openapi-generator?

Pipelines that accept specifications or templates from untrusted users: the README warns that these inputs can lead to code injection.

What are the alternatives to openapi-generator?

Swagger Codegen, Kiota, openapi-typescript. Our measured sample installed in 12 seconds and only used 6 MB, but its audit found 29 known vulnerabilities and it had no build or test target.

Setup4/5Many install paths, though our measurement covered one sample
Docs5/5Generator lists, options, install paths, and migration notes are deep
Community5/526,685 stars with current pushes and a large issue and PR queue
Maturity4/5Broad stable use, with generator-specific edge cases and churn

Discussed on

  1. hnOpenAPI Generator allows generation of API client libraries from OpenAPI Specs122 points
  2. hnThe first public release (3.0.0) of OpenAPI Generator10 points
  3. hnOpenAPI Generator 4.2.2 (2019 last release): new TS redux-query generator6 points
  4. hnOpenAPI Generator (REST API Code Generator) v4.1.0 Released4 points
  5. hnOpenAPI Generator 4.0.0-beta3 has been released3 points

Who it’s for

API teams that publish SDKs for several languages from one reviewed specification.
Backend groups that want server scaffolds to start from an OpenAPI contract.
Organizations willing to pin a generator version and review generated diffs in CI.
Developers who need templates or generator options for a framework already listed by the project.

Who it’s NOT for

Pipelines that accept specifications or templates from untrusted users: the README warns that these inputs can lead to code injection.
Teams expecting generated code to compile without language-specific tests: open issue 24776 reports an OpenAPI 3.1 case that produces an invalid Java initializer.
Contracts that depend heavily on inheritance or union edge cases without regression fixtures: current reports cover allOf, standalone enums, and nullable object types.
Small projects that need only TypeScript types: the full checkout had 70,126 files and about 5,777,575 source lines, while narrower generators exist.
Organizations that cannot absorb output churn: v7.25.0 describes breaking changes with fallbacks and more than 240 fixes and additions.

Setup reality

Our sandbox entered samples/documentation/dynamic-html/, installed 77 npm packages in 12 seconds, and used 6 MB. That sample had no build or test target, so both phases were skipped. Npm audit reported 29 known vulnerabilities: 4 critical, 19 high, 1 moderate, and 5 low.

The main generator has several delivery paths, including a Java 11 CLI JAR, Maven and Gradle plugins, Docker, npm, and source builds with the Maven wrapper. Normal local generation needs no service credential, but CI may need registry, container, or artifact access.

The repository was 338.8 MB with 70,126 files and 111 CI workflows. Our Node result describes one documentation sample, not the Java generator, its templates, or any generated SDK. Each chosen generator still needs a compile and test job in its target language.

One specification can produce clients, servers, and documentation

OpenAPI Generator turns an OpenAPI document into code or documentation through a named generator and a set of options. Its catalog spans client SDKs, server scaffolds, static documentation, Postman collections, and other artifacts. The appeal is consistency: one reviewed contract can feed several consumers without engineers copying model classes and request plumbing by hand.

Breadth is also the source of risk. Each language has its own templates, frameworks, dependency versions, naming rules, and incomplete corners of the OpenAPI specification. Release 7.25.0 alone lists more than 240 additions and bug fixes across Java, Kotlin, Python, TypeScript, Go, Dart, Rust, and other targets. A successful generator invocation only proves that files were written.

Generated output belongs in the same review path as handwritten code

The README carries an unusually direct security warning: specifications, templates, options, and environment inputs from an untrusted source can cause code injection in generated clients, servers, or documentation. Do not expose the generator as an unrestricted upload service. Pin the executable, restrict template sources, validate the specification, and run generation in a disposable environment with the least access it needs.

Correctness needs language-specific gates after generation. Open issue 24776 shows a required nullable object property producing an invalid Java initializer. Issue 24778 reports an inheritance order that loses fluent builder behavior through allOf. Issue 23559 describes a Protobuf schema generator changing standalone enums into message types without updating field references. These reports affect particular generators and inputs, which is exactly why representative contract fixtures matter.

What happened when we ran it

Our sandbox cloned commit 80e8788, then selected samples/documentation/dynamic-html/ as its Node project. Npm installed 77 packages in 12 seconds and used 6 MB on disk. The sample exposed no build script or target, so the build phase was skipped. It also exposed no test target, so no tests ran.

Npm audit reported 29 known vulnerabilities in that installed sample: 4 critical, 19 high, 1 moderate, and 5 low. Those findings apply to the dependencies selected inside the dynamic HTML documentation sample. They do not establish that the Java CLI or every generated project contains the same packages. They do make that sample a poor candidate for publishing unchanged.

The full repository was much larger than the nested install: 70,126 files, about 5,777,575 source lines, a 338.8 MB checkout, and 111 CI workflow files. Our run did not build the primary Java generator or execute its main test suites. It also did not generate and compile an SDK. The measurement is useful as a precise sample result, not as proof of whole-project health.

Java 11 is enough to run the CLI, while source work is heavier

The README offers a downloadable CLI JAR that requires Java 11, plus Maven and Gradle plugins, Docker images, Homebrew, npm, pip, and a launcher script. Building the main project from source uses Java 11 and the Maven wrapper, with Maven 3.8.8 or newer listed as optional when not using the wrapper. Normal local generation does not require a hosted account.

For CI, choose one distribution path and pin the version. The launcher can follow the latest release automatically, which is convenient for experiments and risky for reproducible builds. Version 7.25.0 is explicitly described as having breaking changes with fallbacks. A generator update should produce a reviewed diff, followed by formatting, compilation, unit tests, and any contract tests that exercise serialization and authentication.

The generator catalog is broad enough to reward restraint

The project supports many variations within a language. Java alone has different HTTP libraries and server frameworks; TypeScript covers Fetch, Axios, Angular, Node, and other targets. Teams should pick the smallest generator that matches their maintained runtime instead of exposing every option to each service. Store the exact command and configuration beside the API specification.

Customization through templates can solve house-style requirements, yet each template fork becomes code that must track upstream model changes. Prefer generator options and small post-processing steps when they are sufficient. If customization grows into a replacement template set, assign it an owner and test it against multiple specifications, including nullable fields, unions, inheritance, unusual names, and empty responses.

August 2026 activity confirms maintenance and constant change

GitHub recorded 26,685 stars, 5,708 combined issues and pull requests, and a last push on August 26, 2026. Release v7.25.0 landed on August 24. The issue count reflects both user reports and active contributions across a wide matrix; it should not be read as 5,708 confirmed defects. Apache-2.0 covers the project code.

OpenAPI Generator is the strongest fit when output breadth matters enough to justify a generation pipeline. The project gives teams mature machinery and a huge template catalog. The team must supply the last mile: trusted inputs, a pinned version, generated diffs, and actual tests in every target language. Without those controls, automation can reproduce the same mistake across every SDK at once.

Alternatives

ProjectWhat it isPick it when
Swagger CodegenThe older multi-language code generator from which OpenAPI Generator was forked.pick this instead when an existing build already depends on Swagger Codegen templates and migration risk outweighs newer generator work.
KiotaA client-focused OpenAPI generator built around Microsoft's request-adapter model.pick this instead when you only need client libraries and Kiota's supported languages and abstractions fit.
openapi-typescriptA focused tool that turns OpenAPI schemas into TypeScript types.pick this instead when type generation is enough and you do not want clients, servers, or dozens of templates.

What people are saying

  1. [velocity-scout] OpenAPITools/openapi-generator

Sources

  1. OpenAPI Generator repository and README
  2. OpenAPI Generator v7.25.0 release
  3. Java nullable object generation issue 24776
  4. Java allOf builder issue 24778
  5. Protobuf enum reference issue 23559

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →