Skip to content

Releases: OpenAPITools/openapi-generator

v7.0.1 released

18 Sep 08:53
Compare
Choose a tag to compare

v7.0.1 is the first patch release after the v7.0.0 major release 3 weeks ago. More than 100 PRs have been merged based on the feedbacks of our users who have upgraded to the latest v7.0.0 release.

One important enhancement is beta support for OpenAPI specification v3.1.0.

For a list of changes (bug fixes, enhancements), please refer to the PR list.

v7.0.0 released

25 Aug 07:14
c37fa8a
Compare
Choose a tag to compare

We're happy to announce the release of v7.0.0 - a major release with lots of enhancements and bug fixes including breaking changes without fallback. More than 500 PRs contributed by the awesome OpenAPI Generator community have been included in this release.

For a list of breaking changes, please refer to the following:

New Generators:

  • Add Zapier generator #15997
  • Sttp4 client generator #1583
  • [swift] New 'swift-combine' client generator for swift #15823
  • [kotlin] New 'jvm-spring-webclient' library #15568

General

  • Support library option via additionalProperties #16242
  • [Default] update isAdditionalPropertiesTrue tag to cover more types #16227
  • Add isJson, isXml to consumes, produces #16085
  • Use openjdk official docker image in openapi-generator-online #15964
  • fix security features listed in documentation - remove openID Connect included by default #15773
  • [openapi-normalizer] Support normalizing null types using OAS 3.1 syntax #15698
  • Fix extensions handling for allOf with single schema #15632
  • Update to JDK11. Breaking change (without fallback) #15553
  • [openapi-normalizer] enable some rules by default Breaking change (with fallback) #15501
  • Use enum type for discriminator #13846

asciidoc

  • [asciidoc] Set toc level to 4 #15481

C

  • support 32bit in postdata #16238

C#

  • [csharp] Fixed model property data type #16315
  • [csharp] Update RestSharp to 110.2.0 #16122
  • [csharp] Enable setting of RemoteCertificateValidationCallback through IReadableConfiguration #15979
  • [csharp][generichost] Added value converter class #15970
  • Rename csharp-netcore to csharp Breaking change (without fallback) #15903
  • [csharp-netcore][generichose] Use correct name for enum while serializing #15742
  • [csharp-netore][generichost] Renamed ToModel to AsModel. Breaking change (without fallback) #15662
  • [aspnetcore] Adds {{>partial_header}} to missing mustache files #15616
  • [csharp] Fix property names. Breaking change (without fallback) #13681

C++

  • [cpp-qt-client] Fix warning #16083
  • [C++][Pistache] Serialize integer enums if possible #16080

Crystal

  • Add mapping features to crystal client generator #16253

Dart

  • Fix epoch deserialization and parsing numbers #15948
  • [Dart] Convert DioError to DioException #15783

Elixir

  • Elixir: Switch Poison to Jason #16061

Eiffel

  • [Eiffel] fix Eiffel schema lookup, clean up outdated samples #15901

Grovvy

  • [groovy] support enum generation in groovy client #15619

Go

  • [go] fix issue that tempfile is not deleted #16303
  • [Go] Update go-echo-server generator to respect the --git-host argument #15720
  • [Go] Update API naming to follow Golang standard pkg (1 line change). Breaking change (with fallback) #15331

Haskell

  • [haskell-servant][haskell-yesod] Fix specialCharReplacements #16289

Java

  • [JAVA] [WebClient] Handle list of String special case in WebClient generator #16326
  • [spring] fix void return type for useResponseEntity: false #16230
  • Support for multipart/form-data; charset="utf-8" in Java GSON Generator #16211
  • Fix import for spring boot 3 #15949
  • Fix cli options use tags and api name suffix. Breaking change (without fallback) #15936
  • spring: fix spring pageable used without any config. Breaking change (without fallback) #15113
  • [java] remove fullJavaUtil option. Breaking change (without fallback) #15033
  • Fix additionalProperties in spring generator. Breaking change (without fallback) #11572

JavaScript

  • Use substring instead of substr in JavaScript and TypeScript generators #15937

Julia

  • [Julia] correct handling of POST data encodings #16149

Kotlin

  • [kotlin-client][multiplatform] Added support enum query parameter #16327
  • [bug][kotlin] sanitize model names according to convention. Breaking change (with fallback) #16267
  • [kotlin-server] add support for jakarta ee namespace #15593
  • [Ktor] Update generator to latest Ktor version. Breaking change (without fallback) #14296

PHP

  • PHP - Permit to customize more composer.json parts #16012
  • [PHP-Symfony] Fix Symfony warning on OpenAPIServerBundle #15960

Postman

  • [POSTMAN] Mark request header as disabled #16028
  • [Postman Collections] Keep original header name #1590

Python

  • Rename python-nextgen to python. Breaking change (without fallback) #15504
  • Decommission python client generator #15486
  • Decommission python-legacy, python-prior client generators #15475
  • [python-fastapi] Added a base class for the actual implementation. Breaking change (without fallback) #14470

R

  • Add mapping features to R client generator #16252
  • Fix NPE in R construct example code #15953

Rust

  • Rust validation handling #15288

Scala

  • [Scala] scala-akka-http-server support pekko-http using useApachePekko flag #16255

Swift

  • [swift] to support application/octet-stream for file upload #16299

TypeScript

  • [typescript-nestjs] allow configuration with forRootAsync #16112
  • Add support for Angular 16 #15925

Xojo

  • [xojo] fix use of isBasic #15761

v7.0.0-beta

06 Jul 08:10
635f795
Compare
Choose a tag to compare
v7.0.0-beta Pre-release
Pre-release

A list of breaking changes:

What's Changed

Read more

v6.6.0

11 May 02:04
7f8b853
Compare
Choose a tag to compare

v6.6.0 release comes with bug fixes, enhancements and 2 new generators:

New Generators:

  • Support language N4JS (New generator) #15397
  • Add Xojo client generator #15194

There are 2 breaking change with fallback:

  • [csharp-netcore] Explicitly implement IValidatableObject #15160
  • [python-nextgen] Add support for union of StrictFloat and StrictInt #15124

For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

General

  • [openapi-normalizer] Fix nullable boolean check in oneOf schema #15276

C#

  • [csharp-netcore] Better handling of oneOf/anyOf with duplicated data type #15377

C++

  • Fix request parameter encode call #15313
  • [C++][Pistache] Generate API generalization interface #15279
  • [cpp-ue4] Fix multi collection format has duplicated prefix #15260

Dart

  • [dart-dio] fix endpoints returning null #15433
  • Drop default value when unnecessary #15368

Elm

  • [Elm] Fix printing empty notes #15238
  • [Elm] Fix List of type missing required import(s) #15171

Go

  • [go-server] Fix: name declared and not used #15201
  • [go-server] Update dependencies and use generics #15087
  • [go-server] Change Routes type from []Route to map[string]Route #15084

Java

  • [BUG][JAVA][restTemplate] ApiClient is not compatible with spring-web 6 Observation API #15421
  • [java][resttemplate] Add property for config removal of @component from ApiClient and Api classes #15416
  • [Spring] fix Paginated without params (fix #15265) #15315
  • [java][Jersey2/3] Probe content type for multipart upload parts #14965

Kotlin

  • [kotlin][client] Use Kotlin code style in parameter enum class names #15447
  • [Kotlin-Spring] add Kotlin based Spring Cloud OpenFeign generator #15048

N4JS

  • Support language N4JS (New generator) #15397

PHP

  • [php-nextgen] Add @generated tag to DocBlocks #15106
  • [php-nextgen] Rename folders to follow PDS skeleton #15102

Python

  • [python-nextgen] support constructor with position argument in oneOf/anyOf model #15434
  • [python-nextgen] Add ApiResponse object #15367
  • Mark python-nextgen client generator as stable #15360

Ruby

  • [Ruby] fix RSpec documentation URL #15164
  • [Ruby] Client: fix base_url when no server_operation_index is defined #15162

Swift

Xojo

  • Add Xojo client generator #15194

v6.5.0

01 Apr 07:04
7417432
Compare
Choose a tag to compare

v6.5.0 release comes with many bug fixes and enhancements such as several new rules in OpenAPI Normalizer

There's one breaking change with fallback: [Java][Spring] option whether to generate required args constructor #14941

For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

General

  • Add isOverridden, update Java pojo with setter for parent properties #15051
  • Add new openapi-normalizer rule REFACTOR_ALLOF_WITH_PROPERTIES_ONLY #15039
  • Better allOf handling in fromProperty #15035
  • Do not add schema / class name mapping where custom mapping exists #14984
  • [OpenAPI Normalizer] update SIMPLIFY_ONEOF_ANYOF to convert enum of null to nullable #14898
  • Add new openapi-normalizer rule: ADD_UNSIGNED_TO_INTEGER_WITH_INVALID_MAX_VALUE #14891
  • Better support of inline allOf/anyOf/oneOf schemas #14887
  • [openapi-normalizer] add a new rule to set tags for all operations #14794
  • Add rule to simplify oneOf/anyOf #14777
  • Add rule to simplify boolean enum #14764
  • [openapi-generator-online] Revert spring boot back to 2.5.14 #14755

C#

  • [csharp-netcore] Better handling of form parameters #15040
  • [csharp-netcore] Moved null checks from constructor to JsonConverter #14980
  • Decommission csharp-dotnet2 client generator #14911
  • [csharp-netcore] add options dateFormat, dateTimeFormat to customize the format #14894
  • [csharp-netcore] Add unsigned integer/long support #14885
  • [v2] (RFC) Csharp netcore generator supports UnityWebRequest library #14870

C++

  • [C++][Pistache] Add some missing {{declspec}} on classes and functions #14808
  • [Bug][C++-cpprest] Encode request parameters to enable whitespace characters #14797

Erlang

  • [erlang-client] fix URL paths #14988
  • [erlang-client] Fix url path generation being passed to hackney_url #14821

Go

  • [GO] [REQ] Enable bearer security schema for Go client #14957

Java

  • [JAVA][NATIVE] Fix NPE for form values request builder #15036
  • Added Micronaut configuration points #15005
  • [java] fix optional array property's default value #14961
  • [spring] fix default value for nullable containers #14959

JavaScript

  • [JS] Update optional parameters in jsdoc #15032

K6

  • [K6] Enhancement: Make operationId accessible inside requests #14787

Kotlin

  • [Kotlin-Spring] Remove wildcard imports from mustache templates #14899

PHP

Python

  • [python-nextgen] use __fields_set__ to determine if the field is needed in to_dict #15086

Rust

  • [RUST] Upgrade reqwest-middleware #14819
  • [Bug][Rust] fix: removes replacement which makes x-tag-name incompatible with spec #14746
  • [rust-server] Fix clippy warnings #13907

Swift

  • [swift5] fix modelNamePrefix and -suffix for reserved types #14768
  • [swift5][client] improve headers order #14636

TypeScript

  • Fix TS jQuery tests by increasing timeout #14991
  • fix(typescript-angular): fix model filename including modelNamePrefix #14859

v6.4.0 released

19 Feb 10:54
93df0ff
Compare
Choose a tag to compare

v6.4.0 released with bug fixes and enhancements. As usual we appreciate the contributions from the OpenAPI Generator community.

For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

General

  • fix: Inline model schema's name is wrong #14687
  • Add 'endsWith' handlebars helper function #1463
  • Preserve order of securitySchemes #14536

C#

  • [csharp-netcore] Use scheme from base address #14685
  • [csharp-netcore] Fixed format of Date serialization #14616

Dart

  • [dart][dart-dio] Add deprecations on models and fields #14676
  • [dart][dart-dio] Bump Dio to 5.0.0 #14675

Go

  • [Bug][Go] consider allOf schemas for rendering string default vaules #14684
  • [Go] properly set header parameters on api clients #14637

Java

  • [BUG][JAVA][SPRING] Fix serialization when there is a discriminator with mapping #14733
  • Fix toUrlQuery string method in anyOf models in java native client #14715
  • [Java] fix default value for JsonNullable #14703
  • [Fix] take numeric types into account for array defaults #14694
  • [java][apache-httpclient] update httpclient dependency to the latest 5.x #14673
  • [Java/Microprofile] Add support for Jackson serialization & async #11554

JavaScript

  • [JAVASCRIPT] Fix inconsistent validateJSON and validateJsonObject calls, breaking object validation #14720

Kotlin

  • ktor-client add toString() for generic params #14717

Python

  • [python-fastapi] update starlette to newer version #14700
  • [python-nextgen] better datetime support in parameters #14621
  • [python-nextgen] optionally support float strict type #14618

R

  • R] Fix escaping in templates #14572

Ruby

  • Set proxy in ruby faraday client if configured #14597

Rust

  • [rust] Fix content-type in templates #14702

v6.3.0 released

01 Feb 12:54
8f2676c
Compare
Choose a tag to compare

v6.3.0 is a minor release, which contains breaking changes with fallback. As always we appreciate the contributions from the community.

We've added 4 new generators:

  • Added Julia client and server generators #14520
  • Add a new Python client generator - python-nextgen #14157
  • Add a new jetbrains http client generator #14477

For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

General

  • Add OpenAPI Normalizer #14172
  • Add a rule to keep only the first tag Enhancement: General OpenAPI Normalizer #14465
  • Add isEnumRef, isEnumOrRef to CodegenProperty #13880
  • Update project dependencies - root, openapi-generator #13881
  • Use Gradle 7.6 to build Gradle plugin #13860
  • Nullable subschemas #13850
  • Cleanup outputDir before openApiGenerate (Gradle plugin) #13659

C

  • [C][Client] Allow cJSON_IsNull() for a string if it is not mandatory #14332
  • [C][Client] Always send integer or boolean query parameters to the API server #14019

C#

  • [csharp-netcore] Added isNew property to CodegenProperty #14412
  • [csharp-netcore] Removed net5, added net7 #14003

C++

  • [cpp-qt-client] Fix warnings #14056

Crystal

  • [Crystal] Skip primitive types from ModelImportMap #14436

Dart

  • [dart-dio] Fix non legacy discriminator behavior #14291

Go

  • [Go] Adds a sha256 configuration option to hs2019 #14467
  • [Go] Client Models using AllOf, OneOf, or AnyOf Correctly Include time and os imports #14459
  • [Go] [Client] Don't Explode Query Params #14447

Haskell

  • [haskell][server] Include response headers in the API type #13565

Java

  • [java][native] Fix urlQuery string method in oneOf #14488
  • [Java][native][apache-httpclient] Update toUrlQueryString to support form style for object #14478
  • [Java][Spring] fix ParameterObject import for Spring Boot 3 #14454
  • [java][microprofile] implement useRuntimeException #14414
  • [Java][Spring] Fix #14398 springboot 3 schema required #14402
  • Add deepObject query string support in Java native client #14378
  • [Micronaut] Improving micronaut-model and micronaut-client generation #14065
  • Add Spring 6 HTTP interfaces #14485

JavaScript

  • [JavaScript] fix boolean in oneOf, add tests #14380

Kotlin

  • [kotlin][client] add info if endpoints requires authentication or not #14445
  • [KOTLIN] feat: adds maven-publish to 'kotlin' client generator #14344

PHP

  • [PHP] \GuzzleHttp\json_encode is deprecated, use \GuzzleHttp\Utils::jsonEncode instead #14323
  • [PHP] better PHP symfony test #14117
  • [#13998][Bug][PHP] Move isNullable section to the top of the setter function in templates #14005

Python

  • [python] Fixes Response TypeError #14299
  • Add a new Python client generator - python-nextgen #14157
  • [python] Fixes Configuration w/ access_token at initialization #14153
  • [python] fixes addProps sometimes breaks #14102
  • [python] exposes deserialized bodies for non-2XX responses #14095
  • [python] Issue 13997 fix pass in model instances to new #14067
  • [python] fixes bug where v2 specs generate clients when they should not #13996
  • [python] fixes enum naming bug #13985

Ruby

  • [ruby] Fix api_error.mustache to initialize message-only errors properly #14264
  • Enable access token refresh #14251
  • Update Ruby minimum version to 2.7 #14002

Rust

  • [rust] Fix declaration for arrays with object and array references #14198

Swift

  • [swift5][client] - fix combine warning #14444
  • [swift5][client] - simplify async await #14430

TypeScript

  • [typescript] Add importFileExtension option to support ECMAScript module resolution #14371
  • [typescript-axios] single request param in factory #14358

v6.2.1 released

01 Nov 09:23
b0ce532
Compare
Choose a tag to compare

v6.2.1 is a patch release with 140+ commits including bug fixes and enhancements for 10+ programming languages. kotlin client generator now also supports Vert.x library. As always we appreciate the contributions from the community.

For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

General

  • Update dependencies for CVE #13834

C#

  • [csharp-netcore] Allowing user to set client package #13785
  • [csharp] Fixed data type for maps of maps #13701

Crystal

  • [Crystal] Map AnyType to Object #13737
  • [Crystal] Allow double colons in model name #13736

Elixir

  • Elixir: Improve generated API options docs #13478

Elm

  • [elm] add function to allow more fine grained error handling #13773

Go

  • [GO] fix: stops checking for nil for structs #13843
  • [go-echo-server] update echo to newer version #13732

JavaScript

  • [JavaScript] add oneOf support #13561

Java

  • [Java][okhttp-gson] Minor improvements #13864
  • Java jersey OAuth2 add support for public client #13828
  • [JAVA] [NATIVE] Fix exploded query parameters with array property #13656
  • Spring request mapping mode #13838
  • [Java][jaxrs-spec] Make contextPath template parameter available as a string constant for use in @ApplicationPath #13377

Kotlin

  • [Kotlin]Reducing code smells #13703
  • Added Kotlin Vert.x client #13594

PHP

  • [PHP] handle properly multiple accept headers #13844
  • [PHP] Allow selecting Content-Type #13769
  • [PHP-Symfony] Encourage Symfony 5 bundle directory structure best practices #13014

Python

  • [python] fixes required prop in composed schema, prop not in properties, addProps unset #13819
  • [python] Fixes endpoint overload type hint + required property not in properties #13790
  • [python] Fixes bugs #13581
  • [python] fix for issue #13722: send body for application/x-www-form-urlencoded data #13723

R

  • Better error handling in the R client #13800

Rust

  • [rust] [rust-server] More abstract functions including integer fitting #13503
  • [rust] Fix generation for optional and nullable fields (double option pattern) #13177

Swift

  • [swift5] update new minimum OS supported versions #13667
  • [swift5] fix generation of multiple security definitions #13617

v6.2.0 released

24 Sep 13:55
24f476a
Compare
Choose a tag to compare

v6.2.0 is a minor release with one important breaking change (with fallback). The python generator has been refactored (replaced with python-experimental) with breaking changes. Please give it a try and let us know if you've any feedback.

Given that python-experimental contains breaking changes, users can fallback to python-prior after this PR if they prefer not to upgrade at the moment for whatever reasons.

After the PR, the future development of python (which follows a JSON schema focused design) will be moved to a new project named "openapi-json-schema-generator" under https://github.com/openapi-json-schema-tools. If you've any questions, feedback or issues, please open a ticket. Anyone wants to contribute a client/server generator with a focus on JSON schema should contribute to "openapi-json-schema-generator".

At the same time, @wing328 is leading an effort to create a new Python client generator based on the design of other popular clients in this project such as Java, C#, PHP, Ruby and more to make the overall developer experience more consistent. The goal is to have the new Python client generator replacing/sunsetting all existing python client generators in the openapi-generator project at the moment for easier maintenance.

Python

  • Switches python-experimental in as the primary python client #13501
  • [python-experimental] removes enum cls factory #13491
  • [python-experimental] reduces python version to 3.7 #13481
  • [python-experimental] improves documentation #13477
  • [python-experimental] Fix error message #13471
  • [python-experimental] simplifies type checking #13437
  • [python-experimental] adds more base class mixins, preparation for v3.1.0 type arrays #13436
  • [python-experimental] Enhance octet-stream deserialize #13402
  • Adds IJsonSchemaValidationProperties format getter and setter +uses the format info #13360

For a full list of changes, please refer to the "Pull Request" tab.

v6.1.0 released

11 Sep 09:34
43dbb5f
Compare
Choose a tag to compare

v6.1.0, which contains breaking changes with fallback, includes 280+ PRs covering 20+ programming languages from the community.

For the highlight of changes, please refer to the list below. For a full list of changes, please refer to the "Pull Request" tab.

General

  • Update jackson-databind to newer version #13391
  • Adds $ref data to schema classes #13163
  • Allow override CodegenConfigurator in GenerateTask in OpenAPI Generator Gradle Plugin #13140
  • Fixes fromProperty so it retrieves the correct instance depending upon if the property is required or not 12858
  • Adds getIsBooleanSchemaTrue/getIsBooleanSchemaFalse to store is a schema was defined as boolean schema true or false 13341
  • Adds requiredVarsMap to store required vars even if those variables do not exist in properties or if additionalProperties is false 13117

Avro

  • Avro fix arrays with items as a ref to defined enum #13162

C

  • [C][Client] Treat "null" as a valid value for a field of a JSON map #13352

C#

  • [csharp-netcore] To support Secret API key input as string #13276
  • Added support for inheritance in Swashbuckle in ASP.NET Core #12856

C++

  • [cpp-ue4] Support UE5 version of FTickerObjectBase #13304
  • [cpp-pistache-server] Fix enum generation for mode useStructModel=true #13249

Dart

  • Make "applyToParams" a Future + add "this." when decoding JSON #13120

Go

  • [Go] Fix missing import for array/map of file #13143

HTML

  • Fix syntax error in generated html #13293

Java

  • fix: ensure Resteasy JAX-RS Response object closed #13333
  • [jaxrs-spec] fix default values for array #13076
  • [Java] apache-httpclient serialize support custom contentType #13058

JavaScript

  • Combine javascript and javascript-apollo generators #13270

k6

  • Better handling of NPE in k6 client generator #13236

Kotlin

  • Fix generation of default array values for kotlin client #13243

Perl

  • Fix Perl cannot string bind undef #13114

PHP

  • [PHP] double curly braces bugfix #12999
  • [PHP] Add support for server variables in operations #12982

PowerShell

  • [powershell] cache model name for faster lookup #12917

ProtoBuf

  • Fix protobuf variable name #13296

Python

  • [python-experimental] adds and uses regex patterns for json + filename detection 13357
  • [python-experimental] refactoring and type hint additions/improvements. instance["someProp"] type hints added
  • [python-experimental] verifies 11434 was fixed with test 13358
  • [python-experimental] improves json content-type detection 13356
  • [python-experimental] improves additionalProperties processing 13347
  • [python-experimental] adds endpoint generation by paths, eliminates duplicate endpoint generation 13007
  • [python-experimental] adds auto generated endpoint tests of serialization/deserialization 12875 13323 12988
  • [python-experimental] handles use case where tag exists on endpoint but does not exist in the spec tags section 13054
  • [python-experimental] improves docs, adds migration guide 13210
  • fix deepcopy for allOf schemas 13130

R

  • [R] support explode (true/false) in query array parameters #13364
  • [R] Add httr2 support #13005

Ruby

  • [Ruby] add useAutoload option to use autoload instead of require #13153

Rust

  • [rust] [rust-server] Add AbstractRustCodegen (breaking changes with fallback) #13231
  • Cleaned up cargo clippy warnings #13011

Scala

  • [scala][sttp] fix enum generation for inline-enum of array #13250

Swift

  • [swift5] distinguish (un-)authenticated requests #13321

TypeScript

  • [typescript-nestjs] Upgrade to NestJS v8 (Breaking change with fallback) #12937