# OpenAPI Generator — Generate Client SDKs and Server Stubs from API Specs > A code generation tool that produces client libraries, server stubs, API documentation, and configuration from OpenAPI 2.0/3.x specifications in over 50 languages. ## Install Save in your project root: # OpenAPI Generator — Generate Client SDKs and Server Stubs from API Specs ## Quick Use ```bash npm install @openapitools/openapi-generator-cli -g openapi-generator-cli generate -i petstore.yaml -g python -o ./out ``` ## Introduction OpenAPI Generator turns an OpenAPI specification file into production-ready client SDKs, server stubs, or documentation. It removes the tedious work of hand-writing HTTP wrappers and keeps your codebase synchronized with your API contract. ## What OpenAPI Generator Does - Generates client libraries in 50+ languages including TypeScript, Python, Java, Go, and Rust - Produces server stubs for frameworks like Spring Boot, Flask, Express, and Gin - Outputs static HTML or Markdown documentation from spec files - Supports OpenAPI 2.0 (Swagger), 3.0, and 3.1 specifications - Allows deep customization through Mustache or Handlebars templates ## Architecture Overview The tool parses an OpenAPI spec into an internal model of operations, schemas, and security definitions. It then passes this model through a selected generator module that applies language-specific templates to emit source files. A post-processing pipeline handles formatting, import resolution, and file placement in the output directory. ## Self-Hosting & Configuration - Install via npm, Homebrew, Docker, or download the standalone JAR - Requires Java 11+ runtime for the core engine (CLI wrappers hide this) - Configure output with a `openapitools.json` or command-line flags for package names, namespaces, and date libraries - Override individual templates by placing custom `.mustache` files in a templates directory - Integrate into CI with the Maven or Gradle plugin for automatic regeneration on spec changes ## Key Features - Broadest language coverage of any open-source API code generator - Template-based architecture allows per-project customization without forking - Generates model validation, serialization, and authentication handling automatically - Supports discriminator-based polymorphism and oneOf/anyOf/allOf composition - Active community with frequent releases and generator-specific configuration options ## Comparison with Similar Tools - **Swagger Codegen** — the original fork; OpenAPI Generator has broader community governance and faster release cadence - **oapi-codegen (Go)** — Go-only but produces idiomatic code; OpenAPI Generator covers 50+ languages - **AutoRest (Microsoft)** — focused on Azure SDKs; OpenAPI Generator is vendor-neutral - **Kiota (Microsoft)** — newer graph-based approach; OpenAPI Generator has more mature template ecosystem - **openapi-typescript** — TypeScript-only type generation; OpenAPI Generator also produces runtime HTTP clients ## FAQ **Q: Can I generate only models without the client wrapper?** A: Yes. Use the `--global-property models` flag to emit only data model classes. **Q: How do I handle breaking spec changes?** A: Regenerate into a separate branch, diff the output, and review changes before merging. **Q: Does it support async/await in generated clients?** A: Many generators (TypeScript-fetch, Python-aiohttp, C#) produce async code by default or via configuration. **Q: Can I add custom validation logic to generated models?** A: Use partial class extensions or template overrides to inject custom validators without modifying generated files. ## Sources - https://github.com/OpenAPITools/openapi-generator - https://openapi-generator.tech/docs/installation --- Source: https://tokrepo.com/en/workflows/asset-a951911e Author: AI Open Source