Thanks for the effort from the community, we have released a stable version 3.0.0, which supports both OpenAPI specification v2 and v3 🎉 🎊 . A good starting point is the migration guide.

For more information on why we forked Swagger Codegen to maintain a community-driven version "OpenAPI Generator", please refer to the Q&A

Public chatroom: https://gitter.im/OpenAPITools/openapi-generator

Brew formula for OpenAPI Generator: https://github.com/Homebrew/homebrew-core/pull/28584 (Pending)

For the latest update on OpenAPI Generator, please follow our Twitter account (oas_generator)

Below please find the changelog for this release (relative to v2.3.1 of Swagger Codegen)

New Generators

6debf749 Java rest-assured client - java with --library=rest-assured 6d2d4298 Scala Gatling client - scala-gatling e2c58fad TypeScript Inversify client - typescript-inversify 7cad47dd Kotlin server - kotlin-server

Docker

7dfd9400 Docker: use correct MAVEN_CONFIG (#182) b5a0d173 Revise the usage of OpenAPI Generator online (docker image) (#73) e58dc2c7 Fix COPY in Dockerfile (#64) 9d7feaae Fix online generator (docker push) (#58) 9247cd01 Changes for Docker 64037ee5 update docker-related files to use JDK8

Plug-ins

b6b8c0db [gradle-plugin] Initial implementation (#162) 0a28aad7 [MAVEN PLUGIN] Checking for null configOptions before looking for property 9c79297d [MAVEN PLUGIN] Use latest version in dependencies snippet 9e1bbe0c Add maven wrapper

API Clients

Ada

edf6be8c [Ada] bug fix by defining x-is-model-type when property is local to the YML file 9ba74f48 [Ada] Fix GNAT project and server skeleton to avoid sending a response when an error is returned ea27924f [Ada] changed default project/package name, to solve circular dependencies 6b9d38d4 remove trailing spaces in ada template 0de7f972 Fix the Ada server skeleton to check the authsMethods in the Shared_Instance generic package 4bd8fc6e Fix 7511: [Ada] Client call is not correct with multiple parameters and application/x-www-urlencoded 3035bc62 [Ada] Hotfix/ada model sort 43f0e869 Ada code generator corrected: "=>" instead of "->". 7d2b4908 [Ada] wrong order for generated structures in models.ads files 2b2b85ee [Ada] wrong JSON in POST operations

C#

0e34bcf4 [csharp] ctor params should always be camelCase [Breaking change with fallback] 87247199 [csharp] Support arrays of arrays for properties and models 1c4e6b7d [csharp] Fix ToJson to work with composition and polymorphism ed7af73f [csharp] Reference this.Configuration in client API template

C++

e796e4c3 [C++] Add linux as a reserve keyword 36f69a03 remove trailing spaces in qt5 c++ templates f192613f fix string type in c++ generator 40901546 fix file type in qt5cpp a4bcb3bc fix datetime and map type for qt5cpp 23b31aba [qt5cpp] Fix crash when API return a map container 3b031ed2 [qt5cpp] delete callback data allocated before signal emission 1bb1e44d [qt5cpp] Remove qt5 pro.user file 19472201 Qt5cpp plug memleaks part2 12f3661d Qt5cpp plug memleaks ea4b9484 [qt5cpp] Add nullptr guard to prevent crash when empty model is being serialized 0bf430a8 Qt5cpp Add support for nested containers 0b3ec6b1 fix NPE with cpp qt5, add logic to avoid NPE with composed schema 7c734445 fix file parameter in header file (cpprest) 070b5c00 fix object type declaration in cpprest bad1885b [cpprest] add parameterToString for number type with unspecified format (double) 73bd24db [cpprest] Add support for nested vectors ee2eb74f [qt] update Qt client d8249994 Adding qt project generation fix 9bd94b4d [qt] Fix warning message

Clojure

d7e37450 [Clojure] Add util method to set the api-context globally (#93)

Dart

f1638a65 [Dart] Allow setting an accessToken for OAuth a5e26a44 [Dart] Rework Dart client generator to be flutter-compatible [Breaking change without fallback]

Elixir

f9b2839a [Elixir] Check date value before calling to_iso8601

Elm

5a87fe69 [elm] Fix operations with empty responses (#171) a5cf27b6 Fix Petstore example for Elm (#96) c522927d Fix Elm generator for polymorphism (#78) 7d9fb9f5 Add CI test for Elm in travis (#40) 769a65c9 [Elm] Add support for array schemas 56a0268e [elm] missing '->' in Main elm template

Erlang

c7311852 [erlang-client] Erlang request utils 049eef9c Test erlang client, server petstore bcc7b788 fix erlang client compilation error

Go

acb63fd5 Fix go readme, remove resty install 5d8362d8 Update go client, fix double body read 47614bb7 Properly capitalize exported go types ee561fcd Add withXml option for Go language 0f669608 [Go] Use consistent indentation in readme 72abb20f [Go] Fix operation files clobbering model files d1e75b084 Golang Client Refactor (body and model in errors, typed optional parameters) [Breaking change without fallback]

Haskell

34db79b9 [haskell-http-client] update dependency versions + readme (#81) e45b3784 Fix NPE with Haskell client generator with OAS3 spec d3401396 [haskell-http-client] remove duplicates in produces/consumes; fix pathParam paramName issue 4bc99b9d minor fixes to haskell http client generator 2d0bafb6 [haskell-http-client] default InlineMimeTypes to true [Breaking change with fallback] 9fba9c32 [haskell-http-client] add config options: cabalPackage, cabalVersion, baseModule, requestType, configType

Kotlin

a3322fbf [kotlin] Add OkHttpClient.Builder to ApiClient. 3c5fb1d8 [kotlin] Add json annotation to each enum value. 39fa375e [kotlin] Fix NPE for POST/PUT/PATCH with empty request models. c599906f [Kotlin] Correct data_class.mustache to use proper property for inner enum data type c69925b5 [Kotlin] Fix issues with threetenbp a811a48c minor fix to kotlin client generator due to merge conflict 914275fe [kotlin] support selection of datelibrary a61d2326 Fixed incorrect renaming of header and query param to camel cases for Kotlin Client template

Lua

dbe78e23 [Lua] Improve auto-generated test files 6c79052a Add auto-generated Lua spec files for APIs, models 38a2c1dd [Lua] Fix Rockpec a2410b21 Add auto-generated rockspec file to Lua API client df10c725 Add lua test script, minor fix to Lua API files

Java

2e69e6c0 build.gradle should not have commas 1a4e5a4e Java client: Add constants for libraries (#163) 7db0201a Fix NPEs in Java generator (#154) 4d7ff8cf JavaDoc fixes for Java/RESTEasy client (#151) 072ce070 resteasy: fix outer enum case (#139) ccd00296 [Java] rest-assured: fix javadoc in templates e7410d4c Allow $ in Java var name 03490e92 Fix Java binary mapping 70b4b55f Fix performance linting problem with maps in Java ApiClient template cddcda0f [Java][Jersey2] Make generated client code thread safe [Breaking change without fallback] 298ca8d3 use correct jackson date library when using Java 8 53eeb0c0 [Java] fix connection leak on retrofit OAuth token renewal 61c25e71 [Java] Fixes for retrofit f0233275 [JAVA] Fix issue when codegen with parcelableMode fails to build if using arrays in OpenAPI spec 4eeb974c [Java][google-api-client] Fix bug with empty POST request not sending content-type d4543a99 [Java][retrofit2] file upload sets filename as baseName instead of a dynamic filename 62a93022 [JAVA][Rest-assured] reqSpec() method has been added into api.mustache for requests customization fec0363f [Java] Add back byte array enhancement 59ff4c19 [Java][library: vertx] Add default value and required parameter support to vertx server 3bd2da9a [Java] Fix build warnings 429b96ae [JAVA] equals and hashCode for models with byte[] and binary strings 495971c2 [Java] use html entities in javadoc of generated code (#106) 82ee8656 [java] Enum in array of array (#66) bf7e4e7d Java gson: add @SerializedName value as constant (#22) 30c1448d Fix build.gradle for Java RESTEasy client 642c0566 [Java] Use Rx2 Completalbe for Void Retrofit2 responses 72221b1c Adding @Deprecated to retrofit2 client interfaces. 47111b32 [Java] fix gson deserialize format byte 9e06f706 [Java] Fix assignment of new object instance to variable 006f084b [Java] Allow to set values with setApiPackage(..) and setModelPackage(..)

JavaScript/NodeJS

d80e2958 Fix JS test using baseName in default value (#5) fe15f469 fix toDefaultValueWithParam in JS 90859575 Fixing variable name typo (instane -> instance)

Objective-C

9fb2c29a 7644 objc deprecated afnetworking datataskwithrequest 5d187402 add class as a keyword in objc generator 1b8df5c2 Update ObjcClientCodegen.java 246ed575 restore objc reserved word: property

PHP

3beeb4e7 [PHP] Not-required properties now shows as nullable (#129) 37df59d6 [PHP] Adjust the names (script, sample folder, generator) to lang option (#159) 4a5d16b2 [PHP] Fix string length validation d58835e5 [PHP] Improve: Make validation strict cf8d8d56 [PHP] Fix code example from README. Variable name was missing when using Basic auth. 0adbf7e5 [PHP] Improve: update sample tests automatically 32cf2f16 [PHP] Non required enum property 3bcf0ff7 [PHP] Add path & file separator (/) to return the correct path when deserializing a file 14e1e198 [PHP] Improve validation on empty arrays 809e1f4c [PHP] Cleanup tests 76907cac [PHP] declare property headerSelector

Python

7184f1ec [python] asyncio supports _preload_content; remove unused imports (#107) d74d2ba0 fix: python clients 8e0a0ebd Fix python / tornado body handling b39c35c7 Fix inconsistency between model name and file name in python client dfbef437 Fixed unicode error and supported allow_nonstandard_methods in tornado based python client f6e0e297 [python-asyncio] tests and fixes

R

61e58d64 Add R namespace file

Ruby

a0816459 fix ruby parameters in documentation, fix reuqiredParams, optionalParams 8e34f9a9 update to newer version of ruby aa6b217b [Ruby] Add auto-generated rubocop config file

Rust

b4435739 [Rust] Implement minimal auth support 0b845a57 [Rust] Changes hard coded body to dynamic parameter name - a3c97753 [Rust] Handles UUID as string 027df610 [Rust] Handle error response statuses 66be7a79 [Rust] Add user agent handling for rust template (master) 3029b7b0 [Rust] Format example with rustfmt

Scala

197b4481 normalize akka-scala and Java README 612cfb7a [Akka-scala] Clean unused dependencies such swagger-core [Breaking change with fallback] 86697fed [Scala][Gatling] correct body params filename 832919b8 [Scala][Akka] Remove unused dep when model package is empty

Swift

40d5d099 [Swift4] accept empty content with default client 3b7230b1 [Swift 4] Fix APIHelper to accept array parameter e22faf4c [Swift] Add public initializer for modelObject. b184fb1d [Swift3] escape URL parameters 52f606b8 Fix Swift3 test cases and add pom.xml, travis config for iOS test a3d0f1d4 Swift4: make generated models structs instead of classes

TypeScript

f615d823 update ts node dependencies 9ac9bc0d [TypeScript] enhance ts import 009dcf00 Mark not required swagger properties as optional typescript properties bdd2c2a4 Misc typescript Angular code generation improvements 260375c9 Fix typescript-node generation of array type models d1933b5f Fix a problem in the generation of typescript-jquery when we have enum in a query param [Breaking change without fallback] 20305139 [Feature][TypeScript] request param enum as literal unions 524f162e Use supportsES6 flag in ts compilation for language typescript-angular 9b860231 [TypeScript] Make OpenAPI Generator serialize subclasses properly (#102) 4bc5ffe8 [typescript-angular] add provided in support (#120) ef832e71 [Feature][TS Angular] improve docs angular import fc7e0834 [TS][Fetch] Add interfaces option 157e6b7f [angular] Add option to generate tagged unions 7faaa091 Fix generated module imports in Aurelia APIs b5f0b24b [TS] fix object declaration in model

API Servers

C++

6fef0a7f fix string issue with restbed generator a339422b move get type declaration method to c++ restbed

C#

d9d65301 [aspnetcore] Make the use of Swashbuckle optional (#110) 9a8183ab [aspnetcore] Fix openapi.json location rename (#56) 12abfb96 [aspnetcore] Update Dockerfile 86681758 [aspnetcore] Fix string enum generation

Java

bd50d368 [JAVA - jaxrs-reasteasy-eap] Add import to models (#179) 7efda597 Fix issue with useBeanValidation option in Java server generators (#160) 71b5de3e Do not set contextPath for spring-boot (#104) b73ab026 jaxrs-cxf-cdi: fix outer enum (#131) 4d7fc046 [JaxRS] Add "validation-api" dependency in jetty (#30) ce930e7a [Jaxrs-cxf] Add bean-level cascaded beanvalidation for pojos (@Valid) 386b9f43 Modify "postProcessOperations" for "jaxrs-cxf-client" 5d92717d update jaxrs to listent at port 10080 7c203167 update artifict id for jaxrs datelib j8 88c5112f Adds support for returning response in jaxrs-spec interfaces 6bf84d5f [JAXRS-SPEC] Fix lowercase enums sent as uppercase 3a1922bc Fix version for "spring-boot-maven-plugin" (#85) 16194865 Add reactive option for Spring Boot (webflux) ff1178ad [Java][Spring] fix missing optional query params 2103fada Fix package declaration for play-framework 2c6380c8 fix inner item (list, map) for play framework e33b350c Fix an issue in Play Framework generator where a CSV is empty and transferred to the controllerImp with an empty item. 99fc2724 [JAX-RS][Spec] Removes throws Exception. fe2a4433 Fixes issue (SpringCodeGen dateLibrary "java8-localdatetime" option is ignored). d890d733 [JaxRS][Java] issue with implFolder on windows, and required fields generation for containers (#88) c91ce17a Feature/javaPlayWithAsynchronousControllers f00a1ef5 [JAVA] Correct consumes/produces attributes for Spring Controllers d14318cf [JAVA][Spring] Optional params with delegate 3f81378d [java resteasy] fix string comparison (#134) 5ea3d3bb [JAX-RS][SPEC] Bug fix that prevents generating interfaces when interfaceOnly is false.

Kotlin

7cad47dd [kotlin-server] --library=ktor (barebones implementation) 752b36e6 [Kotlin] Sanitize enumeration name to add underscore when it starts with digits (#77)

NodeJS

6d88d073 [NodeJS] make serverPort configurable via CLI option e7f4fb3c Fix nodejs-server path issue in windows platform

PHP

d30fcbab Fixes for php-ze-ph generator 60e3339a [Feature][PHP] Update for ze-ph generator

Python

62b93fc5 [Python][Flask] Handles UUID format - 9999eac5 fix python flask parameter naming

Scala

d5c355a5 [Scalatra] Updated the version of Scalatra to the latest (2.6.2) 52322c47 [finch] Allow finch server to compile for CI checks (#7)

Ruby

dcad9ae8 [Rails5] make version of the generated Rails stub server to strict Rails 5.0

Rust

37faaf92 [rust-server] API version constant and composite version support 6c7813e7 [rust-server] asynchronous support via hyper v0.11

Documentation

25a6a9d4 html: fix typo in class name

Miscellaneous

f0421328 Cli error message improvements (#172) 0ece706a Remove CodegenConfig.fromModel(String, Schema) method (#90) 64f2bea3 Fix getReferenced...() methods in ModelUtils (#157) 16ff5174 Update swagger-parser to 2.0.1 (#123) 76b7307a DefaultGenerator: ignore only form param schemas (#74) a3aabd39 Create a default implementation of delegate if none could be autowired (#92) ca89af80 Switch to Java 8 27426f7b Cli generator name option, replaces 'language' options in CLI and Maven Plugin (#57) a1ff5024 Rename datatype to dataType in CodegenProperty (#69) 3b9a2a7c CaseFormatLambda has been added, params for Rest-assured client has been refactored (#91) 48891036 Set parameters allowableValues dynamically (#65) 2821f18b Meta: set version for "build-helper-maven-plugin" (#89) 82d9e935 Add CORS configuration to openapi-generator-online (#71) e3814f51 Improvements to online codegen (#55) 6b807980 Consider minLength, maxLength and pattern in referenced schema (#45) 7c5dfbfa Minor improvements to OpenAPI Generator Online (#54) 8dd46a3f Move online gen from jersey to spring boot (#44) 803821e2 Fix an issue with example generator when array is too large (#46) 673f2bc4 Add CodegenProperty.nameInSnakeCase (#42) 67ebe17d Fix isPrimitiveType flag for array of form parameters (#38) 10ac4024 Code clean-up: remove field declaration hiding existing fields (#35) ab9c4b5a Code clean-up: Add own private static final LOGGER in each class (#26) 41b0ff35 Code clean-up: remove DefaultCodegen#getSimpleRef(String) (#19) 13f084e7 Fix dataTypeWithEnum for array of form parameters fd3b883e [DefaultCodegen] Fill CodegenOperation::produces with unique media types db9a899a update getSchemaType variable, remove unused import d74b4cdf fix map type and collection format for form parameter (array) d99f46cf Revise how to obtain the example value b1eac05b Fix form datatype (array of string) 3c666a6d Fix array of form parameters 1492df6c Override server port for Jetty configuration 622a75b2 Fix data type shadowing 861d11d0 use vendor extension in operation to set the body parameter name 80c8b92c add postProcessParamter for body, form parameter 7fe555a5 Set collectionFormat default only for array 16589de9 default collection format to csv according to the spec edbe4902 Consider '$ref' for consumes and produces in CodegenOperation e24238a3 Improve getter name handling for boolean properties 6e2ca294 update discriminator to discriminatorName 74075c08 Primitive datatype in Schema components d8abd4a1 support map in body parameter 18659411 Update swagger-core to 2.0.1 2034f61e Add HideGenerationTimestamp getter and setter in the CodegenConfig interface d0e2d768 Getter and Setter for hideGenerationTimestamp adbde2fb replace fromOperation with postProcessOperations 9d1ae0dd fix bigdecimal in default codegen ffa0e115 fix default value and type declaration 0e744adb Apply collection format to SIMPLE enum style 36ed2985 Tweak tests according to the parameter order changes 17b08279 Move 'enum_query_double' to parameters section 28fcf48f Add a method returns discriminator name 7daa2ec5 Fix broken discriminator faa90164 Replace with the helper function: getTypeDeclaration c8650d0e Make optional properties in models optional parameters 40c30dd2 Fix inputSpec for multi module builds 5326152c add option to reorder form/body parameter d1850091 Improve JMeter Template fedfb0cd Factorize addOption/addSwitch method e73eeb4f fix for stripping prefix on single enums 13e3db59 Add operationIdOriginal to store the original operationId 0b2d8056 Expose getter/setter for serverPort to facilitate testing 8e270f46 add vendorExtensions field in CodegenSecurity class 1ee85de9 Added Intelli J ignore 7b8e409c Added gitignore generation function