# SwaggerCodegen **Repository Path**: mirrors/SwaggerCodegen ## Basic Information - **Project Name**: SwaggerCodegen - **Description**: OpenAPI (f.k.a Swagger) 规范代码生成器,支持 API clients, API servers 和 API documention: API 客户端:Act - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.oschina.net/p/swagger-codegen - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2020-12-27 - **Last Updated**: 2025-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Swagger Codegen ![Swagger Codegen Logo](./docs/Swagger-Codegen-Logo.png) This is the Swagger Codegen project, which allows generation of API client libraries (SDK generation), server stubs and documentation automatically given an [OpenAPI Spec](https://github.com/OAI/OpenAPI-Specification). 💚 If you would like to contribute, please refer to [guidelines](https://github.com/swagger-api/swagger-codegen/blob/master/CONTRIBUTING.md) and a list of [open tasks](https://github.com/swagger-api/swagger-codegen/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22).💚 📔 For more information, please refer to the [Wiki page](https://github.com/swagger-api/swagger-codegen/wiki) and [FAQ](https://github.com/swagger-api/swagger-codegen/wiki/FAQ) 📔 ⚠️ If the OpenAPI Description or Swagger file is obtained from an untrusted source, please make sure you've reviewed the artefact before using Swagger Codegen to generate the API client, server stub or documentation as [code injection](https://en.wikipedia.org/wiki/Code_injection) may occur. ⚠️ ## Versioning > ⚠️ this document refers to version 2.X, check [here](https://github.com/swagger-api/swagger-codegen/tree/3.0.0) for 3.X. Both **2.X** and **3.X** version lines of Swagger Codegen are available and are independently maintained. **NOTES:** - Versions 2.X (`io.swagger`) and 3.X (`io.swagger.codegen.v3`) have **different** group ids. - OpenAPI 3.0.X is supported from the 3.X version only. For full versioning information, please refer to the [versioning documentation](./docs/versioning.md). ## Supported Languages and Frameworks Currently, the following languages/frameworks are supported: - **API clients**: **ActionScript**, **Ada**, **Apex**, **Bash**, **C#** (.net 2.0, 3.5 or later), **C++** (cpprest, Qt5, Tizen), **Clojure**, **Dart**, **Elixir**, **Elm**, **Eiffel**, **Erlang**, **Go**, **Groovy**, **Haskell** (http-client, Servant), **Java** (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Google API Client Library for Java, Rest-assured), **Kotlin**, **Lua**, **Node.js** (ES5, ES6, AngularJS with Google Closure Compiler annotations) **Objective-C**, **Perl**, **PHP**, **PowerShell**, **Python**, **R**, **Ruby**, **Rust** (rust, rust-server), **Scala** (akka, http4s, swagger-async-httpclient), **Swift** (2.x, 3.x, 4.x, 5.x), **Typescript** (Angular1.x, Angular2.x, Fetch, jQuery, Node) - **Server stubs**: **Ada**, **C#** (ASP.NET Core, NancyFx), **C++** (Pistache, Restbed), **Erlang**, **Go**, **Haskell** (Servant), **Java** (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, RestEasy, Play Framework, [PKMST](https://github.com/ProKarma-Inc/pkmst-getting-started-examples)), **Kotlin**, **PHP** (Lumen, Slim, Silex, [Symfony](https://symfony.com/), [Zend Expressive](https://github.com/zendframework/zend-expressive)), **Python** (Flask), **NodeJS**, **Ruby** (Sinatra, Rails5), **Rust** (rust-server), **Scala** ([Finch](https://github.com/finagle/finch), [Lagom](https://github.com/lagom/lagom), Scalatra) - **API documentation generators**: **HTML**, **Confluence Wiki** - **Configuration files**: [**Apache2**](https://httpd.apache.org/) - **Others**: **JMeter** Check out [OpenAPI-Spec](https://github.com/OAI/OpenAPI-Specification) for additional information about the OpenAPI project. ## Table of contents - [Versioning](#versioning) - [Compatibility](#compatibility) - [Getting Started](#getting-started) - [Generators](#generators) - [To generate a sample client library](#to-generate-a-sample-client-library) - [Generating libraries from your server](#generating-libraries-from-your-server) - [Validating your OpenAPI Spec](#validating-your-openapi-spec) - [Generating dynamic html api documentation](#generating-dynamic-html-api-documentation) - [Generating static html api documentation](#generating-static-html-api-documentation) - [Workflow Integration](#workflow-integration) - [Online Generators](#online-generators) - [Contribution](#contributing) - [Swagger Codegen Core Team](#swagger-codegen-core-team) ## Compatibility The OpenAPI Specification has undergone 3 revisions since initial creation in 2010. The **current stable** versions of Swagger Codegen project have the following compatibilities with the OpenAPI Specification: Swagger Codegen Version | Release Date | Swagger / OpenAPI Spec compatibility | Notes -------------------------- |--------------| -------------------------- | ----- [3.0.71](https://github.com/swagger-api/swagger-codegen/releases/tag/v3.0.71) (**current stable**) | 2025-07-03 | 1.0, 1.1, 1.2, 2.0, 3.0 | [tag v3.0.71](https://github.com/swagger-api/swagger-codegen/tree/v3.0.71) [2.4.46](https://github.com/swagger-api/swagger-codegen/releases/tag/v2.4.46) (**current stable**) | 2025-06-30 | 1.0, 1.1, 1.2, 2.0 | [tag v2.4.46](https://github.com/swagger-api/swagger-codegen/tree/v2.4.46) 💁 Here's also an overview of what's coming around the corner: Swagger Codegen Version | Release Date | Swagger / OpenAPI Spec compatibility | Notes -------------------------- |--------------| -------------------------- | ----- 3.0.72-SNAPSHOT (current 3.0.0, upcoming minor release) [SNAPSHOT](https://central.sonatype.com/service/rest/repository/browse/maven-snapshots/io/swagger/codegen/v3/swagger-codegen-cli/3.0.72-SNAPSHOT/)| TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Minor release 2.4.47-SNAPSHOT (current master, upcoming minor release) [SNAPSHOT](https://central.sonatype.com/service/rest/repository/browse/maven-snapshots/io/swagger/swagger-codegen-cli/2.4.47-SNAPSHOT/)| TBD | 1.0, 1.1, 1.2, 2.0 | Minor release For detailed breakdown of all versions, please see the [full compatibility listing](./docs/compatibility.md). ### Getting Started To get up and running with Swagger Codegen, check out the following guides and instructions: - [Prerequisites](./docs/prerequisites.md) - [Building](./docs/building.md) - [Using Docker](./docs/docker.md) Once you've your environment setup, you're ready to start generating clients and/or servers. As a quick example, to generate a PHP client for https://petstore.swagger.io/v2/swagger.json, you can run the following: ```sh git clone https://github.com/swagger-api/swagger-codegen cd swagger-codegen mvn clean package java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \ -i https://petstore.swagger.io/v2/swagger.json \ -l php \ -o /var/tmp/php_api_client ``` **Note:** if you're on Windows, replace the last command with ```sh java -jar modules\swagger-codegen-cli\target\swagger-codegen-cli.jar generate -i https://petstore.swagger.io/v2/swagger.json -l php -o c:\temp\php_api_client ``` You can also download the JAR (latest release) directly from [maven.org](https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.46/swagger-codegen-cli-2.4.46.jar) To get a list of **general** options available, you can run the following: ```sh java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar help generate ``` To get a list of PHP specified options (which can be passed to the generator with a config file via the `-c` option), please run ```sh java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar config-help -l php ``` ## Generators ### To generate a sample client library You can build a client against the swagger sample [petstore](https://petstore.swagger.io) API as follows: ```sh ./bin/java-petstore.sh ``` (On Windows, run `.\bin\windows\java-petstore.bat` instead) This will run the generator with this command: ```sh java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \ -i https://petstore.swagger.io/v2/swagger.json \ -l java \ -o samples/client/petstore/java ``` with a number of options. You can get the options with the `help generate` command (below only shows partial results): ```text NAME swagger-codegen-cli generate - Generate code with chosen lang SYNOPSIS swagger-codegen-cli generate [(-a | --auth )] [--additional-properties ...] [--api-package ] [--artifact-id ] [--artifact-version ] [(-c | --config )] [-D ...] [--git-repo-id ] [--git-user-id ] [--group-id ] [--http-user-agent ] (-i | --input-spec ) [--ignore-file-override ] [--import-mappings ...] [--instantiation-types ...] [--invoker-package ] (-l | --lang ) [--language-specific-primitives ...] [--library ] [--model-name-prefix ] [--model-name-suffix ] [--model-package ] [(-o | --output )] [--release-note ] [--remove-operation-id-prefix] [--reserved-words-mappings ...] [(-s | --skip-overwrite)] [(-t