Skip to content

The first stable version 3.0.0 has been released

Compare
Choose a tag to compare
@wing328 wing328 released this 01 Jun 07:53
· 9678 commits to master since this release

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: Homebrew/homebrew-core#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

6debf74 Java rest-assured client - java with --library=rest-assured
6d2d429 Scala Gatling client - scala-gatling
e2c58fa TypeScript Inversify client - typescript-inversify
7cad47d Kotlin server - kotlin-server

Docker

7dfd940 Docker: use correct MAVEN_CONFIG (#182)
b5a0d17 Revise the usage of OpenAPI Generator online (docker image) (#73)
e58dc2c Fix COPY in Dockerfile (#64)
9d7feaa Fix online generator (docker push) (#58)
9247cd0 Changes for Docker
64037ee update docker-related files to use JDK8

Plug-ins

b6b8c0d [gradle-plugin] Initial implementation (#162)
0a28aad [MAVEN PLUGIN] Checking for null configOptions before looking for property
9c79297 [MAVEN PLUGIN] Use latest version in dependencies snippet
9e1bbe0 Add maven wrapper

API Clients

Ada

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

C#

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

C++

e796e4c [C++] Add linux as a reserve keyword
36f69a0 remove trailing spaces in qt5 c++ templates
f192613 fix string type in c++ generator
4090154 fix file type in qt5cpp
a4bcb3b fix datetime and map type for qt5cpp
23b31ab [qt5cpp] Fix crash when API return a map container
3b031ed [qt5cpp] delete callback data allocated before signal emission
1bb1e44 [qt5cpp] Remove qt5 pro.user file
1947220 Qt5cpp plug memleaks part2
12f3661 Qt5cpp plug memleaks
ea4b948 [qt5cpp] Add nullptr guard to prevent crash when empty model is being serialized
0bf430a Qt5cpp Add support for nested containers
0b3ec6b fix NPE with cpp qt5, add logic to avoid NPE with composed schema
7c73444 fix file parameter in header file (cpprest)
070b5c0 fix object type declaration in cpprest
bad1885 [cpprest] add parameterToString for number type with unspecified format (double)
73bd24d [cpprest] Add support for nested vectors
ee2eb74 [qt] update Qt client
d824999 Adding qt project generation fix
9bd94b4 [qt] Fix warning message

Clojure

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

Dart

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

Elixir

f9b2839 [Elixir] Check date value before calling to_iso8601

Elm

5a87fe6 [elm] Fix operations with empty responses (#171)
a5cf27b Fix Petstore example for Elm (#96)
c522927 Fix Elm generator for polymorphism (#78)
7d9fb9f Add CI test for Elm in travis (#40)
769a65c [Elm] Add support for array schemas
56a0268 [elm] missing '->' in Main elm template

Erlang

c731185 [erlang-client] Erlang request utils
049eef9 Test erlang client, server petstore
bcc7b78 fix erlang client compilation error

Go

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

Haskell

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

Kotlin

a3322fb [kotlin] Add OkHttpClient.Builder to ApiClient.
3c5fb1d [kotlin] Add json annotation to each enum value.
39fa375 [kotlin] Fix NPE for POST/PUT/PATCH with empty request models.
c599906 [Kotlin] Correct data_class.mustache to use proper property for inner enum data type
c69925b [Kotlin] Fix issues with threetenbp
a811a48 minor fix to kotlin client generator due to merge conflict
914275f [kotlin] support selection of datelibrary
a61d232 Fixed incorrect renaming of header and query param to camel cases for Kotlin Client template

Lua

dbe78e2 [Lua] Improve auto-generated test files
6c79052 Add auto-generated Lua spec files for APIs, models
38a2c1d [Lua] Fix Rockpec
a2410b2 Add auto-generated rockspec file to Lua API client
df10c72 Add lua test script, minor fix to Lua API files

Java

2e69e6c build.gradle should not have commas
1a4e5a4 Java client: Add constants for libraries (#163)
7db0201 Fix NPEs in Java generator (#154)
4d7ff8c JavaDoc fixes for Java/RESTEasy client (#151)
072ce07 resteasy: fix outer enum case (#139)
ccd0029 [Java] rest-assured: fix javadoc in templates
e7410d4 Allow $ in Java var name
03490e9 Fix Java binary mapping
70b4b55 Fix performance linting problem with maps in Java ApiClient template
cddcda0 [Java][Jersey2] Make generated client code thread safe [Breaking change without fallback]
298ca8d use correct jackson date library when using Java 8
53eeb0c [Java] fix connection leak on retrofit OAuth token renewal
61c25e7 [Java] Fixes for retrofit
f023327 [JAVA] Fix issue when codegen with parcelableMode fails to build if using arrays in OpenAPI spec
4eeb974 [Java][google-api-client] Fix bug with empty POST request not sending content-type
d4543a9 [Java][retrofit2] file upload sets filename as baseName instead of a dynamic filename
62a9302 [JAVA][Rest-assured] reqSpec() method has been added into api.mustache for requests customization
fec0363 [Java] Add back byte array enhancement
59ff4c1 [Java][library: vertx] Add default value and required parameter support to vertx server
3bd2da9 [Java] Fix build warnings
429b96a [JAVA] equals and hashCode for models with byte[] and binary strings
495971c [Java] use html entities in javadoc of generated code (#106)
82ee865 [java] Enum in array of array (#66)
bf7e4e7 Java gson: add @SerializedName value as constant (#22)
30c1448 Fix build.gradle for Java RESTEasy client
642c056 [Java] Use Rx2 Completalbe for Void Retrofit2 responses
72221b1 Adding @deprecated to retrofit2 client interfaces.
47111b3 [Java] fix gson deserialize format byte
9e06f70 [Java] Fix assignment of new object instance to variable
006f084 [Java] Allow to set values with setApiPackage(..) and setModelPackage(..)

JavaScript/NodeJS

d80e295 Fix JS test using baseName in default value (#5)
fe15f46 fix toDefaultValueWithParam in JS
9085957 Fixing variable name typo (instane -> instance)

Objective-C

9fb2c29 7644 objc deprecated afnetworking datataskwithrequest
5d18740 add class as a keyword in objc generator
1b8df5c Update ObjcClientCodegen.java
246ed57 restore objc reserved word: property

PHP

3beeb4e [PHP] Not-required properties now shows as nullable (#129)
37df59d [PHP] Adjust the names (script, sample folder, generator) to lang option (#159)
4a5d16b [PHP] Fix string length validation
d58835e [PHP] Improve: Make validation strict
cf8d8d5 [PHP] Fix code example from README. Variable name was missing when using Basic auth.
0adbf7e [PHP] Improve: update sample tests automatically
32cf2f1 [PHP] Non required enum property
3bcf0ff [PHP] Add path & file separator (/) to return the correct path when deserializing a file
14e1e19 [PHP] Improve validation on empty arrays
809e1f4 [PHP] Cleanup tests
76907ca [PHP] declare property headerSelector

Python

7184f1e [python] asyncio supports _preload_content; remove unused imports (#107)
d74d2ba fix: python clients
8e0a0eb Fix python / tornado body handling
b39c35c Fix inconsistency between model name and file name in python client
dfbef43 Fixed unicode error and supported allow_nonstandard_methods in tornado based python client
f6e0e29 [python-asyncio] tests and fixes

R

61e58d6 Add R namespace file

Ruby

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

Rust

b443573 [Rust] Implement minimal auth support
0b845a5 [Rust] Changes hard coded body to dynamic parameter name -
a3c9775 [Rust] Handles UUID as string
027df61 [Rust] Handle error response statuses
66be7a7 [Rust] Add user agent handling for rust template (master)
3029b7b [Rust] Format example with rustfmt

Scala

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

Swift

40d5d09 [Swift4] accept empty content with default client
3b7230b [Swift 4] Fix APIHelper to accept array parameter
e22faf4 [Swift] Add public initializer for modelObject.
b184fb1 [Swift3] escape URL parameters
52f606b Fix Swift3 test cases and add pom.xml, travis config for iOS test
a3d0f1d Swift4: make generated models structs instead of classes

TypeScript

f615d82 update ts node dependencies
9ac9bc0 [TypeScript] enhance ts import
009dcf0 Mark not required swagger properties as optional typescript properties
bdd2c2a Misc typescript Angular code generation improvements
260375c Fix typescript-node generation of array type models
d1933b5 Fix a problem in the generation of typescript-jquery when we have enum in a query param [Breaking change without fallback]
2030513 [Feature][TypeScript] request param enum as literal unions
524f162 Use supportsES6 flag in ts compilation for language typescript-angular
9b86023 [TypeScript] Make OpenAPI Generator serialize subclasses properly (#102)
4bc5ffe [typescript-angular] add provided in support (#120)
ef832e7 [Feature][TS Angular] improve docs angular import
fc7e083 [TS][Fetch] Add interfaces option
157e6b7 [angular] Add option to generate tagged unions
7faaa09 Fix generated module imports in Aurelia APIs
b5f0b24 [TS] fix object declaration in model

API Servers

C++

6fef0a7 fix string issue with restbed generator
a339422 move get type declaration method to c++ restbed

C#

d9d6530 [aspnetcore] Make the use of Swashbuckle optional (#110)
9a8183a [aspnetcore] Fix openapi.json location rename (#56)
12abfb9 [aspnetcore] Update Dockerfile
8668175 [aspnetcore] Fix string enum generation

Java

bd50d36 [JAVA - jaxrs-reasteasy-eap] Add import to models (#179)
7efda59 Fix issue with useBeanValidation option in Java server generators (#160)
71b5de3 Do not set contextPath for spring-boot (#104)
b73ab02 jaxrs-cxf-cdi: fix outer enum (#131)
4d7fc04 [JaxRS] Add "validation-api" dependency in jetty (#30)
ce930e7 [Jaxrs-cxf] Add bean-level cascaded beanvalidation for pojos (@Valid)
386b9f4 Modify "postProcessOperations" for "jaxrs-cxf-client"
5d92717 update jaxrs to listent at port 10080
7c20316 update artifict id for jaxrs datelib j8
88c5112 Adds support for returning response in jaxrs-spec interfaces
6bf84d5 [JAXRS-SPEC] Fix lowercase enums sent as uppercase
3a1922b Fix version for "spring-boot-maven-plugin" (#85)
1619486 Add reactive option for Spring Boot (webflux)
ff1178a [Java][Spring] fix missing optional query params
2103fad Fix package declaration for play-framework
2c6380c fix inner item (list, map) for play framework
e33b350 Fix an issue in Play Framework generator where a CSV is empty and transferred to the controllerImp with an empty item.
99fc272 [JAX-RS][Spec] Removes throws Exception.
fe2a443 Fixes issue (SpringCodeGen dateLibrary "java8-localdatetime" option is ignored).
d890d73 [JaxRS][Java] issue with implFolder on windows, and required fields generation for containers (#88)
c91ce17 Feature/javaPlayWithAsynchronousControllers
f00a1ef [JAVA] Correct consumes/produces attributes for Spring Controllers
d14318c [JAVA][Spring] Optional params with delegate
3f81378 [java resteasy] fix string comparison (#134)
5ea3d3b [JAX-RS][SPEC] Bug fix that prevents generating interfaces when interfaceOnly is false.

Kotlin

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

NodeJS

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

PHP

d30fcba Fixes for php-ze-ph generator
60e3339 [Feature][PHP] Update for ze-ph generator

Python

62b93fc [Python][Flask] Handles UUID format -
9999eac fix python flask parameter naming

Scala

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

Ruby

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

Rust

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

Documentation

25a6a9d html: fix typo in class name

Miscellaneous

f042132 Cli error message improvements (#172)
0ece706 Remove CodegenConfig.fromModel(String, Schema) method (#90)
64f2bea Fix getReferenced...() methods in ModelUtils (#157)
16ff517 Update swagger-parser to 2.0.1 (#123)
76b7307 DefaultGenerator: ignore only form param schemas (#74)
a3aabd3 Create a default implementation of delegate if none could be autowired (#92)
ca89af8 Switch to Java 8
27426f7 Cli generator name option, replaces 'language' options in CLI and Maven Plugin (#57)
a1ff502 Rename datatype to dataType in CodegenProperty (#69)
3b9a2a7 CaseFormatLambda has been added, params for Rest-assured client has been refactored (#91)
4889103 Set parameters allowableValues dynamically (#65)
2821f18 Meta: set version for "build-helper-maven-plugin" (#89)
82d9e93 Add CORS configuration to openapi-generator-online (#71)
e3814f5 Improvements to online codegen (#55)
6b80798 Consider minLength, maxLength and pattern in referenced schema (#45)
7c5dfbf Minor improvements to OpenAPI Generator Online (#54)
8dd46a3 Move online gen from jersey to spring boot (#44)
803821e Fix an issue with example generator when array is too large (#46)
673f2bc Add CodegenProperty.nameInSnakeCase (#42)
67ebe17 Fix isPrimitiveType flag for array of form parameters (#38)
10ac402 Code clean-up: remove field declaration hiding existing fields (#35)
ab9c4b5 Code clean-up: Add own private static final LOGGER in each class (#26)
41b0ff3 Code clean-up: remove DefaultCodegen#getSimpleRef(String) (#19)
13f084e Fix dataTypeWithEnum for array of form parameters
fd3b883 [DefaultCodegen] Fill CodegenOperation::produces with unique media types
db9a899 update getSchemaType variable, remove unused import
d74b4cd fix map type and collection format for form parameter (array)
d99f46c Revise how to obtain the example value
b1eac05 Fix form datatype (array of string)
3c666a6 Fix array of form parameters
1492df6 Override server port for Jetty configuration
622a75b Fix data type shadowing
861d11d use vendor extension in operation to set the body parameter name
80c8b92 add postProcessParamter for body, form parameter
7fe555a Set collectionFormat default only for array
16589de default collection format to csv according to the spec
edbe490 Consider '$ref' for consumes and produces in CodegenOperation
e24238a Improve getter name handling for boolean properties
6e2ca29 update discriminator to discriminatorName
74075c0 Primitive datatype in Schema components
d8abd4a support map in body parameter
1865941 Update swagger-core to 2.0.1
2034f61 Add HideGenerationTimestamp getter and setter in the CodegenConfig interface
d0e2d76 Getter and Setter for hideGenerationTimestamp
adbde2f replace fromOperation with postProcessOperations
9d1ae0d fix bigdecimal in default codegen
ffa0e11 fix default value and type declaration
0e744ad Apply collection format to SIMPLE enum style
36ed298 Tweak tests according to the parameter order changes
17b0827 Move 'enum_query_double' to parameters section
28fcf48 Add a method returns discriminator name
7daa2ec Fix broken discriminator
faa9016 Replace with the helper function: getTypeDeclaration
c8650d0 Make optional properties in models optional parameters
40c30dd Fix inputSpec for multi module builds
5326152 add option to reorder form/body parameter
d185009 Improve JMeter Template
fedfb0c Factorize addOption/addSwitch method
e73eeb4 fix for stripping prefix on single enums
13e3db5 Add operationIdOriginal to store the original operationId
0b2d805 Expose getter/setter for serverPort to facilitate testing
8e270f4 add vendorExtensions field in CodegenSecurity class
1ee85de Added Intelli J ignore
7b8e409 Added gitignore generation function