Skip to content

Releases: OpenAPITools/openapi-generator

v7.10.0 released

18 Nov 11:01
12dfe8f
Compare
Choose a tag to compare

v7.10.0 stable release (breaking changes with fallbacks) comes with 100+ enhancements, bug fixes. Once again thank you for all the awesome contributions from the community.

This release comes with 4 breaking changes (with fallback) listed below.

3 new generators are included in this release:

  • Added support for a trait based reqwest Rust client #19788 -g rust --library reqwest-trait
  • [csharp] Add a server generator for FastEndpoints #19690 aspnet-fastendpoints
  • [GdScript] Templates for GdScript (Godot 4) #19267 gdscript

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

General

  • Fix allOf with properties for the REF_AS_PARENT_IN_ALLOF rule #20083
  • Update inline model resolver to flatten responses #19992
  • Fix $ref to allOf in properties #19986
  • Better handling of allOf with unsupported schemas #19964
  • Add logic in normalizer to auto fix self-reference schemas #19849

C

  • [C][Client] Add gcc predefined macros to reserved keywords #19791

C#

  • fix(csharp): Fixed JsonConverter for discriminators only appearing on base classes #19972
  • [csharp][generichost] Better handling of duplicate operation ids #19913
  • [csharp] Address MaxTimeout obsolete build warning #19875 (Breaking change (with fallback))
  • [csharp] Add a server generator for FastEndpoints #19690
  • [csharp] Mustache fully qualify namespace for Path #19349

C++

  • feat cpp-qt-client: fix cast primitive to string #20000
  • Remove further Qt support before Qt 5.15.2 #19824

Dart

  • [PHP/Dart/Python] Correctly escape strings in single quotes #19529
  • [dart2] [client] Added better double handling to 'mapValueOfType' #17808

Erlang

  • erlang-server: add jesse to app.up release #20120

GdScript

  • [GdScript] Templates for GdScript (Godot 4) #19267

Go

  • [BUG][GO] only import reflect when using it #19967

Java

  • Adding support for @ResponseStatus annotation into spring-http-interface java spring generator #20071
  • Add equals and hashCode methods to Microprofile #20011
  • [java] [restclient] Add support for a token supplier to OAuth based RestClient clients #19944
  • [JAVA] fix several anyOf/oneOf problems #19817
  • [Java Spring] Fix copyOf inheritance using empty object instead of passed value #19426

JavaScript

  • [JS] set useURLSearchParams option to true by default, update samples #20003
  • [JS] add parameter 'useURLSearchParams' to use JS build-in UrlSearchParams, instead of deprecated npm lib 'querystring' #19949 (Breaking change (with fallback))

Julia

  • [julia] improve enum support #20016

K6

  • Remove calculateRequestOrder Function and fix bug #19685

Kotlin

  • Bump libraries for Kotlin client #20053
  • kotlin-server: Fix required + nullable combination for properties #20054
  • [BUG][KOTLIN] Fix the path variable escaping in kotlin client generators #19937
  • [REQ] Add x-field-extra-annotation and x-class-extra-annotation for kotlin generator #19899
  • [Kotlin Server] Update Ktor to latest version; move config to kts #19727
  • Fix explicit KSerializer's name & generation when used in container #20093
  • [kotlin][client] do not generate Serializable(forClass) annotation as the serializer is already defined #20092
  • [kotlin-spring] fix Api Interface for kotlin-spring with spring-cloud library #19877
  • [kotlin] Map file and binary to ByteArray #19840
  • [Kotlin] Allow other content-types when only interested in status-code / Unit #19801
  • [Kotlin] Introduce support for Kotlin Explicit API Mode for Kotlin-Client generator #19999

PHP

  • [PHP/Dart/Python] Correctly escape strings in single quotes #19529

Python

  • [python-pydantic-v1] Fix bug in serialization for SecretStr #20102
  • python: stronger typing for the "configuration" module #20014
  • [python] Check if the given input is a container (Array or Map) when validating enum values #19316

Rust

  • [Rust-Axum] Fix compilation error when validate is used on Nullable values #20100
  • [Rust-Axum] Extracting Claims in Cookie/Header #20097 (Breaking change (with fallback))
  • [Rust-Axum] Prevent Operation response with internal Error #20047 (Breaking change (with fallback))
  • [Rust-Axum] Support Authentication (Cookie, API Key In Header) #20017
  • Fix Rust generation for versions without minor or patch parts #19946
  • Added support for a trait based reqwest Rust client #19788

Scala

  • Scala Cask oneOf support #20051
  • [scala][client] scala-http4s minor improvement (enum companion method, remove implicit, error handling) #19901
  • scala-cask fix: Added support for 'additionalProperties:true' #19767

Swift

  • [swift6] promote to beta and improve documentation #19856
  • [swift][client] rename api client to api configuration #20103
  • [swift6] Add Sendable conformance to request parameter enums #20023
  • [swift6] improve retry interceptor #19988
  • [swift5] fix compile error from Alamofire 5.10 - cast Parameter type to avoid recursion #19908

TypeScript

  • [typescript-fetch][Fix] oneOf models are generated without ...ToJSONTyped functions but models referencing still try to import #20046
  • [typescript-axios] Respect User Supplied Header Params #20040
  • fix(typescript): missing override directives / satisfy noImplicitOverride #19896

v7.9.0 released

08 Oct 02:52
4145000
Compare
Choose a tag to compare

v7.9.0 stable release comes with 150+ enhancements, bug fixes. Once again thank you for all the awesome contributions from the community.

This release comes with 4 breaking changes (with fallback) listed below.

3 new generators are included in this release:

  • [Scala][Client]Add Http4s scala3 client codegen #19658
  • Add swift6 generator #19621
  • Erlang server overhaul #19465

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

General

  • [normalizer] bug fixes (isNullTypeSchema, handling of primitive types with oneOf) #19781
  • feat(avro)/refactor(core): unify *_POST_PROCESS_FILE behaviour and reuse code #19761
  • Fix anyOf/oneOf normalization for 3.1 spec #19758
  • [OpenAPI 3.1] Avoid NPE when handling prefixItems #19735
  • fix(core): system-independent relative path sorting for FILES output #19726
  • feat(core): add info.summary to additionalProperties for 3.1 specs #19723
  • [windows] Fixed missing output #19715
  • fix(core): single value enums (const) are not generated correctly in 3.1 specs #19696
  • fix(core): nullable array types in 3.1.x specs #19687
  • [BUG] HandlebarsEngineAdapter.java failed to use custom FieldValueResolver causing IllegalAccessException for maps #19634
  • Better handling of parameters in inline model resolver #19460
  • [Gradle plugin] bugfix: openapi code generator to consider schema changes #16735

Avro Schema

  • fix(avro-schema): fix NPE for null enum values #19771
  • [avro-schema] fix: enum logic (sanitize, remove collisions) #19549

C++

  • [cpp-pistache-server] Generated code fails to build with x86_64-linux-gnu-g++-13 #19684
  • [cpp-qt-client] New makeOperationsVirtual option (Breaking change (with fallback)) #19613
  • Implemented missing definitions of declared methods inside modelbase-header.mustache, added two missing body of methods definitions #19569

C#

  • [csharp][generichost] Support formatting date only #19785
  • [csharp][generichost] Fix local var #19642
  • [csharp][generichost] Fix invalid key name #19633
  • [aspnetcore] Fix swagger xml comments #19593
  • [csharp] Version bump dependencies #19545

Dart

  • [BUGFIX][dart-dio] Align enum and enum_inline generation result #19510
  • [BUGFIX][dart-dio] add unknownEnumValue to JsonKey #19416

Erlang

  • [Erlang Server] Add more type information and fix minor bugs #19792
  • Erlang server validation bugfixes and capability extensions #19750
  • Add erlang-server-deprecated for fallback after refactoring #19547
  • Erlang server overhaul (Breaking change (with fallback)) #19465

Go

  • [GO] Go Server: preserve order of the routes as defined in the OpenAPI file #19550
  • [Go] fix regex validation breakage in unmarshaljson function #19410

Kotlin

  • [BUG] Kotlin wiremock query params are incorrect #19720
  • [kotlin-client][multiplatform] add support for kotlinx.datetime.LocalTime #19590
  • [kotlin-spring] fix springdoc dependencies #19579
  • [kotlin] enforce fields in data classes #19526
  • [kotlin-spring][server] fix spring boot configuration conflict #19515
  • [Kotlin] Add a new additional property to configure Jackson's failOnUnknownProperties (Breaking change (with fallback)) #19506
  • [Kotlin][okhttp] replace okhttpclient with callfactory #19422

Java

  • [Java][microprofile] enumUnknownDefaultCase true now returns correctly #19677
  • [Java] [apache-httpclient] Fix issue with toString causing wrong value with collections #19576
  • [Java][Spring]Update dependencies to remove vulnerability in org.springframework:spring-webmvc #19533
  • [Java Jersey] Update ApiClient.mustache Jersey doesn't allow entities in method DELETE #19530
  • [Bugfix][Java] Fixed jersey clients for multiple file upload #19476
  • [Java Libraries] Jakarta Validation API support useJakartaEe flag #19469
  • [Java] Add a new additional property to configure Jackson's failOnUnknownProperties (Breaking change (with fallback)) #19271

JavaScript

  • [Javascript] Add initialization of default vars to constructor #19692

Python

  • [Python] Harmonize python client dependency versions #19694
  • python-pydantic-v1: Return the primitive type in to_dict for anyOf models #19488
  • [BUG][python-fastapi] Updated pyyaml and httptools in requirements template to resolve compatibility issues with Python 3.12 #19666
  • feat(python): handle multiple file parameters #19329
  • fix(python,asyncio): multipart form data serialization #19302
  • [python] fix content_type deserialize #19317

PHP

  • [PHP] By default should use static Configuration class instance #19775
  • [php-symfony] Fix enum not serialized with value like '0' #19568
  • [PHP] Add missing qualifier for enum parameters #1956
  • [PHP] Remove NUMBER_ prefix from enum vars if a name is provided, show enum descriptions #19555
  • [bug] in case of defined status codes > 299 switch will have no effect #19483
  • [PHP-Client] Allow Content-Type merge-match+json for encoding #19479

PowerShell

  • [POWERSHELL] fix: keep array context when converting to json #19535-
  • [PowerShell] Support multiple files in multipart/form-data POST (new functionality + fix) #19449

R

  • [R] Update R6 object documentation #19679
  • [R][client] Make enum parameters with required: false optional to request arguments #19654

Ruby

  • [Ruby-client] Use secuirtyScheme Key for api_key #19740

Rust

  • [rust][client][auth] token source option #19647
  • [Rust Server] Handle arrays in forms #19625
  • rust: Implement Display instead of ToString for enums #19611
  • [Core/Rust Server] Check references in additionalProperties correctly when checking freeForm status #19605
  • [Rust Server] Add derive of Hash to enums #19603
  • [Rust Server] Add auto-generated CLI Client #19392

Scala

  • [Scala][Client]Add Http4s scala3 client codegen #19658

Swift

  • [swift5] rename unknownDefault to unknownDefaultOpenApi #19753
  • Add swift6 generator #19621
  • [swift5] Fix Xcode 16 compilation crash with Extensions.swift generation #19564
  • add oneOf-default-case option for swift5 #19094

TypeScript

  • [Typescript-Node] Mark deprecated endpoints #19770
  • [Typescript-Node] Mark deprecated model attributes #19756
  • style(typescript): use Headers type #19697
  • [typescript-axios] fix: enum datatype jsdoc #19571
  • [typescript-fetch] Fixed issue where unique arrays (sets) of primitive values aren't initialized properly #19521
  • [Typescript] Generate oneOf schemas as type unions #19494

Zapier

  • [zapier] add response middleware #19760
  • Make it easier to specify triggers for Zapier #19645

v7.8.0 released

19 Aug 06:34
6bdc452
Compare
Choose a tag to compare

v7.8.0 stable release comes with ~150 enhancements, bug fixes. Once again thank you for all the awesome contributions from the community.

This release comes with 4 breaking changes (with fallback) listed below.

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

General

  • Added support for openapi-normalizer in the online version #19336
  • processing schema name is added to the list with names checked at recursing processing #19221
  • Fix mistype in InlineModelResolver leads to autogenerated class name instead of specified by title #19173
  • Speed up docker re-builds using mvn dependency:go-offline #19078

C#

  • [csharp][generichost] Changed default sorting of samples #19335
  • [csharp][generichost] Support response ranges #19256
  • [csharp] Use global keyword #19257
  • [csharp] Add scope for oauth2 #19234
  • [csharp] fix Task.Result directly blocks thread #19231
  • [ASPNETCORE] Fix having two "?" when not required and nullable = true #19062
  • Support net8 in aspnetcore #19051
  • [csharp] Change sorting default Breaking change (with fallback) #1894

C++

  • [C++][Pistache] Fix 'unused-parameter' warning on Helpers.h file #19315
  • [C++][Pistache] Add error handlers overload taking the response object #19314
  • [cpp-qt] Add option for download progress, add test #19297

Dart

  • fix invalid syntax in gitignore #19341
  • [dart-dio] fix JsonObject missing on a generated code #19130

Elixir

  • [Elixir] allow custom packageVersion #19151

Go

  • Better handling of backtick in pattern #19358
  • [Go] Set Default Values for Required Variables when a default is defined #19232

Haskell

  • Add bytestring package to dependencies of generated haskell code #19101

Java

  • [JAVA] use query parameter apikey if present #19334
  • [JAVA] okhttp-gson client codegen ambiguous references for a component schema "Type" #19328
  • Minor change to Helidon version handling allowing snapshot versions #19320
  • [Java] Update ApiClient.mustache for retrofit2 + rxJava3 #19266
  • [JAVA-CAMEL] revert broken xml change #19259
  • Support Helidon SE 4 generation (clients and servers) #19150
  • [okhttp-gson] migrate to jakarta.ws.rs #19113
  • Remove thread unsafe statusCode and responseHeaders instance variables from apache http ApiClient #19054

Julia

  • [julia] Add support for style, explode in query params #19238

k6

  • [k6] Add authentication variables in headers and cookies #19060

Kotlin

  • [kotlin-client][jackson] Add missing @JsonEnumDefaultValue annotation to top-level enums #19380
  • [bugfix][kotlin-wiremock] fix problems with range responses #19309
  • [Kotlin] Update formParams.mustache to have List of MultipartBody.Part #19287
  • [Kotlin][Spring] fix flag appendRequestToHandler with delegatePattern #19206
  • adds support for x-pattern-message in kotlin-spring generator #19134

PHP

  • [BUG] PHP Client - ObjectSerializer::buildQuery flattens array params resulting invalid URL params (param=a&param=b vs param[]=a&param[]=b) #19236
  • php: Fix typedoc comment for headers in ApiException #19217
  • feat(php-nextgen-client): add support for streaming #19192

PowerShell

  • [PowerShell] Fix missing Content-Type header on a 204 response #19340
  • [PowerShell] Fix response type on deserialization #19331
  • [PowerShell][Bug] Fix issue #18428 - [System.IO.FileInfo] object used in multipart/form-data submission does not support relative paths #19269
  • [PowerShell] Support ApiKeyPrefix #19133

Python

  • python-asyncio: update retry factors for actual exponential retries 19337
  • [Python] fix object arrays giving mypy error "Incompatible types in assignment" in to_dict() #19223
  • Adding decimal support for python client generation #19203
  • [python-fastapi] Fix api endpoint template #19139

Ruby

  • [Ruby] Fix Content-Transfer-Encoding binary unpacking #19132
  • [Ruby] Allow Overriding Accept Header #19106

Rust

  • Make the rust hyper client Send so it can be used in rust threads more easily #19375
  • [Rust Server] Allow configuration of multipart/form attachment size limit #19371
  • [Rust Server] Sort operations so that the ones with fewest params come first #19368
  • [Rust Server] Improve RFC 13341 compliance for multipart/related #19355
  • Rust: Support Integer enums using Serde_repr #19199
  • Upgrade rust-hyper to use hyper 1.0 Breaking change (with fallback) #19115

Swift

  • [swift5]Add array validation rule #19242

TypeScript

  • feat(typescript-angular): add support for Angular V18.1 #19228
  • [typescript-fetch] Fix code generation for oneOf cases without discriminator #19219
  • [FIX][typescript-fetch] Fix duplicate imports for models with a discriminator #19195

v7.7.0 released

02 Jul 07:47
4eaac3d
Compare
Choose a tag to compare

v7.7.0 stable release comes with 140+ enhancements, bug fixes. Once again thank you for all the awesome contributions from the community.

Here are some highlights for the changes included in the release. For a full list of changes, please refer to the "Pull Request" tab.

Breaking changes with fallback

General

  • Fix NPE in ModelUtils getType #19014
  • Load vendorExtensions in the operation parameter #18962
  • Never create inline model for allOf with single $ref #18945
  • clone Schema using AnnotationUtils.clone with WA #18867
  • [Enhancement] [Gradle Plugin] Allow templates from classpath Enhancement: Feature OpenAPI Generator Gradle Plugin #14909

Android

  • [android][volley] Remove unused robolectric test dependency #19022
  • [Android][Volley] Build fixes #18899

C#

  • [csharp] Improved apiclient.mustache #18915
  • [csharp] Refactor anyOf model template #18901
  • [csharp] OneOf should handle Inheritance based type #18892
  • [csharp][generichost] Add support for primitive composed #18825
  • [csharp][generichost] Fixed parameter ordering #18823
  • [csharp][generichost] Added framework support #18776
  • [REQ] [ASPNETCORE] Add value types for the ASPNETCORE generator #18646

C++

  • [cpp-restsdk] add support for oneOf via std::variant #18821

Clojure

  • [clojure] Apply model/param/var name mappings #18858

Crystal

  • [crystal-lang] Update dependencies to remedy build failure #18755
  • [crystal-lang] Resolve type check compile error in ApiError #18759

Dart

  • [Dart] Make dependency on http, collection and meta packages less strict #18952
  • [dart] Apply var/param/model name mappings, handle single _ #18860

Elixir

  • [Elixir] Fix generation issues and compilation warnings in Elixir generator #18788

Erlang

  • [erlang-client] Apply var/param name mappings #18859

Go

  • [Go] Fix an issue causing int array reference translated to an invalid type []Integer #19013
  • [Golang] Move utility functions from client.mustache to utils.mustache #19001

Haskell

  • [haskell-http-client] Support --name-mappings and handle _ name #18944

JavaScript

  • [javascript-closure-angular] Change metadata to reflect beta status and non-existing xml capability in docs #18834

Java

  • [Bug] [Java] Remove raw type compilation warnings when generating using jersey2 or jersey3 #19033
  • [JAVA-SPRING] Avoid broken code due to duplicate rendering of @deprecated annotation with generateBuilders=true #18917
  • Remove bean validation for uuid #18900
  • Fix javaJaxRS template: remove deprecated in JDK9 method usage #18728
  • [Spring] replace MultipartFile by Resource #18509
  • [JAVA] ensure codegen fields and additionalProperties are not conflicting #18935

JetBrians HTTP client

  • JetBrains HTTP Client - Adds support for query and header params and env file #18844

Kotlin

  • [kotlin] Fix a leak in the ApiClient #18997
  • [Kotlin] update ApiClient to register all adapters for GsonBuilder #18965
  • [kotlin-server][javalin6] Add Javalin 6 support #18928
  • [kotlin-wiremock] New generator for generating WireMock stubs using Kotlin #18705
  • [kotlin] better oneOf, anyOf support #18382

PHP

  • [PHP-SYMFONY] Debug Symfony version 7, enums ref, array of enums $ref and date assert #19008
  • [php-slim4-server] fix php syntax error in RegisterRoutes class (missing semicolon) #18863

Python

  • [Python] Allow Overriding Accept Header #19025
  • [Python] Add Flag to Allow Ignoring Operation Servers #18981
  • avoid setting debug property if not needed #18872

Ruby

  • [Ruby] Add Flag to Allow Ignoring Operation Servers #18934

Rust

  • fix(rust-server): remove duplicate allow(unused_imports) directive #18983
  • [Rust-Axum] Use x-response-id if specified #18906

Swift

  • [swift] Rename url & path variables to avoid collision #18969
  • [Swift5] Add model name mapping #18780

TypeScript

  • feat(typescript-angular): add support for Angular V18 #18916
  • [typescript-fetch] fix Type error in oneOf when legacyDiscriminatorBehavior is false #18877

Zaiper

  • Marketplace software zapier request middleware #18907

v7.6.0 released

20 May 09:25
ab7d0cb
Compare
Choose a tag to compare

v7.6.0 stable release comes with 120+ enhancements, bug fixes. Once again thank you for all the awesome contributions from the community.

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

General

  • Skip setting output folder in online service #18652
  • fix: Upgrade testng to avoid CVE-2022-4065 #18635
  • [refactor] Use getType in ModelUtils to better support OpenAPI v3.1.0 spec #18577
  • Fix null type check when simplifying any type #18504
  • fix: ExampleGenerator for composed child schemas and array schemas #18479

C#

  • [csharp] Fixed nullability of composed schemas #18408
  • [C#] made the HttpSigning method public to get the signed header #18496

C++

  • [[BUG][C][cpp-restsdk] fix missing Set.h #18631
  • [C++][Pistache] Compile error when nesting component/schema reference objects #18586

Dart

  • [dart-dio] Incorrect hashCode and == overide for fields withList #18198
  • [dart] [dart-dio] Support Dart3 #18001

Go

  • [GO][Client] Generated GO Client Time Query Param Millisecond Resolution Fix #18673
  • Add an option to skip unmarshall json in Go client generator #18448
  • [GO] Add assert constraints checks for complex types in the model template #18654
  • [Go] uses sanitized model name instead of the name #18644
  • [go-server] Fix: error handling and linting #18550

HTML

  • [html2] Fix incorrectly sanitizesd response headers #18685
  • [html2] Add oneOf support #18642
  • [html2] Support alias types #18579
  • [html2] Fix rendering of arrays of objects in html2 docs #18561

Java

  • upgrade microprofile to junit5 #18669
  • upgrade okhttp-gson and google-api-client to junit5 #18668
  • [BUG][JAVA] Prevent generating "pattern" and "size" to ENUM #18658
  • [BUG][JAVA] oneOf/anyOf multiple constructors with same erasure #18645
  • Add support for Helidon 4 MP client and server generation #18627
  • upgrade java native to junit5 #18617
  • upgrade apache-httpclient to junit5 #18616
  • upgrade resteasy to junit5 #18615
  • [jaxrs-spec] fix nullable import, migrate tests to 3.0 spec #18606
  • [BUG] [Java] Invalid code generation for oneof types #18544
  • Add new option allArgConstructor for java client, spring generators #18538
  • [Java][Client] Add support for the new Spring RestClient #18522
  • Fixes incorrect Jackson imports in Java templates used in ApiClient.java when useJakartaEe=true #18507
  • [java] implement #18032 add builder pattern to java client and spring generator #18650

Kotlin

  • [KOTLIN] Kotlinx serialization, use first party retrofit converter factory #18656
  • [kotlin-client] Update Gradle and dependencies #18571

PHP

  • [php-flight] fix: always set http status in streaming response #18604
  • [php-flight] fix: parsing class/enum models #18528
  • feat(php): allow to pass raw boolean to api #18520

Python

  • [python-flask] deference parameter schemas before further processing #18605
  • [Python] Fix the post processing of enums #18566
  • [PYTHON] Fix for failing to lookup discriminator value using AllOf and discriminator #18498

Ruby

  • Ruby: Fixed CodeQL polynomial regexp Client: Ruby Issue: Bug #1869

Rust

  • Use Display instead of ToString in Rust generators #18633
  • [rust-axum] Split up api trait per tag #18621
  • Bump Rust edition to 2021 and a few crates #18608
  • [Rust-Axum] Fix uuid in header params causing compilation errors #18563

Scala

  • scala-sttp: fix api returns unit #18537
  • scala-sttp4: fix api returns unit #18536
  • Cask version fix #18486
  • Taught Scala-cask to publish JS model files #18413

Swift

  • [swift] support content type application json variants #18539
  • Add ResumableTask to URLSessionImplementations.mustache #18438

TypeScript

  • [typescript-fetch] Improve code generation for oneOf cases without discriminator #18702
  • [typescript-fetch] Make instanceOf infer type and check for undefineds #1869
  • Add typescript 5.x as an allowed version #18674
  • fix(typescript-axios): Correct the content type for a list of objects in form-data when contentType is present #18505
  • Support optional singleRequestParameter #18467

v7.5.0 released

17 Apr 08:35
cce4139
Compare
Choose a tag to compare

General

  • Fix method naming for openapi normalizer, openapi ignore list option #18348
  • Update parser to 2.1.19 #18298
  • [normalizer] fix schemas incorrectly skipped #18297
  • Add logic to simplify any type represented with oneof/anyof #18268
  • Fix map parameter not a container #18220

OpenAPI 3.1 spec (beta suppport)

  • Fix null check in 3.1 spec #18353
  • Better array handling in 3.1 spec #18313

C

  • [C] Optimize memory usage when printing JSON #18072

C#

  • [csharp][generichost] Fixed operation parameter handling #18322
  • [csharp] Fixed property naming convention for composed types #18312
  • [csharp][generichost] Fixed bad reference to client utils #18309

C++

  • [cpp-ue4] Handled nullable by setting the required tag, effectively making nullables optionals #18168

Clojure

  • [Clojure] Handle both types of additional properties when getting type declaration #18201

Dart

  • [dart] fix: Bearer and Basic auth interceptors case-insensitive scheme comparison #17074

Go

  • [Go] fix allOf with multiple ref and discriminator #18390
  • Update go-server template to include the conventional generated code line #18304

Haskell

  • Fix string comparison in haskell servant generator #18410
  • Haskell: JSON Query parameters #18047

HTML

  • [html2] Fix blank responses in html document #18356

Kotlin

  • Add support for modelNameMappings #18342
  • [BUG] [kotlin-spring] Fixed escaped backticks in parameters using reserved words #18318
  • Kotlin: Do not escape/sanitize quoted enum value #18305
  • [kotliln-spring] Update dataClass.mustache #18205

PHP

  • [php-symfony] Allow Symfony 7 / Remove EOL PHP / Bearer Fix #18357
  • Remove param tag for non-existent parameter in ObjectSerializer #18347

Postman

  • [POSTMAN] Deal with boolean fields #18294

PowerShell

  • [PowerShell] (multipart/form-data request) and proxy behaviour #18315
  • Fix proxy type #18166

Python

  • [python] Update docs/ Markdown files for Classes to fix form typo and correct casing for class name when calling from_dict() #18359
  • Python: Correctly serialize enum with its value #18328
  • [python] Fix circular imports on AllOf generation #18272
  • Specify named param for field defaults in Python Pydantic V1 generator #18187

Java

  • Add Mutiny support to JaxRS #18389
  • [Java] fix beanvalidation compilation failed when items type in array is int64 #18379
  • [java][okhttp-gson] Fix oneof, anyof for array type #18324
  • [JAXRS-SPEC] no @Valid annotation on simple fields #18302
  • [spring] Delegate Incorrectly generated when useOptional True #18278
  • Update spring-context and spring-web to newer version #18266
  • [JAVA][NATIVE] fix implements in oneOf/anyOf #18248
  • [Java] Update okhttp3 from 4.10.0 to 4.12.0 to fix CVE-2023-3635 #18235
  • Fix compile error in client properties configuration #18232

JavaScript

  • [javascript] fix docs example quoting #18349

R

  • [R][Client] allow to initialize enum classes without parameters #18183
  • [R][Client] fix brackets for httr2 file_params #18142
  • [R][Client] Allow API response to be NULL #18141

Ruby

  • [ruby] Use Marcel to detect content-type in form-data file upload using faraday #18243

Rust

  • [RUST-AXUM] fix generator not handling application/x-www-form-urlencoded request content #18061

Scala

  • [Scala] added new scala-cask generator for the cask framework #18344
  • scala-sttp4: fix for missing EnumNameSerializer for inner enum definitions #18160

Swift

  • [swift] Added solution for deprecated "UTTypeCopyPreferredTagWithClass" #18330
  • SWIFT5: sort query items alphabetically to allow better server side caching of requests with same URL #18239

TypeScript

  • Update versions for typescript-node and remove vulnerable test package #18334
  • Fix: in typescript fixes additionalProperties handling when extending models #18164
  • fix(typescript-axios): Serialize boolean to string in form-data file upload #18084
  • Fix: Always serialise Map and Set to object and array in typescript-axios #17790

v7.4.0 released

11 Mar 02:22
2abcb4f
Compare
Choose a tag to compare

v7.4.0 stable release comes with 90+ enhancements, bug fixes. Once again thank you for all the awesome contributions from the community.

This release comes with 1 breaking change (with fallback) listed below.

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

General

  • inputSpec should not be mandatory when inputSpecRootDirectory is set #18000
  • Fix ClassCastException in OpenAPINormalizer on composed schemas #17912
  • Add FILTER to openapi normalizer #17859
  • Fix attributes in allOf and $ref #17836

C

  • [C][Client] Fix default enum value being -1 #18040

C#

  • [C#] fix anyof, oneof mixed primitive object parse error #17986

C++

  • [cpp-qt-client]Allow nullable parameters #17805
  • Prevent enum item names being reserved keywords #17804

Dart

  • [Dart] Make dependency on intl package less strict #17862

Go

  • [Go] fix isNil check #17870
  • Generate API files as interfaces for go-gin server #17784

Java

  • [java] Use modelNameMappings if provided #18025
  • [JAVA] Fix 3.1 generation for composed schema's with object type #18002
  • [Java][apache-httpclient] Use EntityUtils#toString instead of Scanner for deserialization #17998

Jetbrains HTTP Client

  • Major Jetbrains HTTP Client upgrade. Move to BETA #15779

Kotlin

  • [kotlin] Enum should match spec #18062 - Breaking change (with fallback)
  • [kotlin-spring] Fix cookie parameter code generation in API #17959
  • [kotlin-spring] fix BigDecimal default value failed to compile #17956

PHP

  • fix(php): update type hint in toString method #17838
  • fix(php): call selectHeaders correctly in psr-18 implementation #17832

Python

  • [python] Fix Circular imports on inherited discriminators #17886
  • Update python-fastapi dependencies to newer versions #17871

Ruby

  • fix(ruby): Detect content-type in form-data file upload using faraday (#17851) #17853

Rust

  • [Rust] [Axum] Fix clippy warning: to_string_trait_impl #17995
  • fix(rust): wrong path to model used as parameter of api #17968
  • feat(rust): support ability to disable boxed models in client #17931
  • fix(rust): oneOf generation for client #17915

TypeScript

  • [typescript-fetch] Use == to check property is null or undefined #17972
  • Use exists() to check for properties #17798

v7.3.0 released

08 Feb 07:44
d617b46
Compare
Choose a tag to compare

v7.3.0 release comes with 4 new generators and many bug fixes, enhancements. Below are the highlights of the release. For full release, please refer to the pull request tab

New Generators:

  • feat: add java-wiremock generator #17614
  • kotlin-server: Add support for Javalin #17596
  • [Rust] [Server] New generator bases on Axum #17549
  • Implement scala http4s server generator #17430

General

  • Add operationId name mapping option #17750
  • Fix require var logging, don't matchGenerated if allOf skipped #17746
  • Add rule to remove x-internal in openapi normalizer #17734
  • Support x-internal in models and operations #17639
  • Fix null schema check for array of string in 3.1 spec #17728
  • Fix allOf with a single item in inline model resolver #17683
  • Fix map and free form object detection issue in 3.1 spec #17624
  • fix: ExampleGenerator correctly generates allOf composed schemas #17499

Bash

  • [Bash] Allow non-JSON request body payloads #17641

C

  • [C][Client] Update the API doc #17540
  • [C][Client] Fix enum function names not matching headers in the model… #17512

C++

  • [cpp-qt-client] Fix CMakeLists.txt.mustache and CMakeLists.txt for Qt5 (fix #17712) #17721
  • [cpp-qt-client] Extend the reserved keywords for Qt projects with the following words #17722
  • [cpp-ue4] Fix generated code not compiling when using unique array items #17684
  • [cpp-qt-client] Update minimum cmake version to 3.5 #17480
  • feat: using Qt with 3rd Party Signals and Slots. Replace signals,slots and emit with Q_SIGNALS,Q_SLOTS and Q_EMIT #17067

C#

  • corrected handling of "isPrimitiveType" for FormParameters #17700
  • [CSharp] feat!: add useDateOnly flag #17471

Dart

  • [dart-dio] includeIfNull: truefalse bugfix #17631

Go

  • [go-gin-server] add a new function to the router to pass the gin context #17785
  • [Go] fix unused bytes import for anyOf and oneOf models #17775
  • fix: ensure models that have variables that contain a complexType of time.Time import the time module #17452

Java

  • [Java] Fix default values of array-type parameters in a referenced file #17779
  • [BUG] [Java] Remove deprecation and serial warnings in ApiException.java and JSON.java #17716
  • add lombok model support on spring #17622
  • feat: add java-wiremock generator #17614
  • [BUG][java][resttemplate] Fix NPE when query param with value null is exploded #17568
  • [jaxrs][cxf-cdi] make sure the imports are present for enum, if using jackson #15123

JavaScript

  • [BUG][Javascript] - validateJSON not working on value 0 #17769
  • Include support to Mojolicious relaxed placeholders parsing path parameters #17633

Kotlin

  • Pass ObjectMapper to JacksonConverterFactory #17673
  • kotlin-server: Add support for Javalin #17596
  • Fix Kotlin templates to be compatible with Kotlin K2 compiler #17466

Perl

  • feat(perl): Update agent to use version constant #17665
  • Add auto-generated cpanfile in Perl client #17662
  • [Perl] Update _test.mustache templates to use done_testing #17649

PHP

  • [PHP] update dependencies for php-dt generated code #17796

PowerShell

  • [PowerShell] Support multiple types in Accept header #17765

Python

  • [Python] deserialize enum json response #17791
  • [python-fastapi] Ensure path param is ... instead of None #17532

R

  • support binary response for R api client #17626

Rust

  • [Rust] [Axum] Fix clippy warning #17637
    -[Rust] [Server] New generator bases on Axum #17549

Scala

  • [scala-sttp]: fix for missing EnumNameSerializer for inner enum definitions #17697
  • Implement scala http4s server generator #17430

TypeScript

  • Accept Promises for the apiKey configuration in the typescript-fetch generator #17758
  • fix typescript-nestjs services when using api_key authentication #17708
  • [typescript-axios] Add any to index type when additionalPropertiesIsAnyType is true #17625

v7.2.0 released

22 Dec 07:08
fe638d0
Compare
Choose a tag to compare

v7.2.0 is the last stable release in 2023. Once again thank you for all the awesome contributions from the community.

This release comes with 2 breaking changes (with fallback) listed below.

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

General

  • To fix infinite loop for allOf with single element in normalizer #17426
  • Fix build errors in JDK 21 #17177
  • OpenAPI 3.1.0 Add webhooks support #17174
  • Add openapiGeneratorIgnoreList option to pre-populate .openapi-generator-ignore #17164
  • Add openapi-normalizer rule to set tags to operationId #17161
  • Fix missing objects when defining inline anyOf, or oneOf #17141
  • Update Dockerfile (cli, online) to use eclipse-temurin:17.0.3_7-jre-focal #17139

C

  • [C][Client] Use int* as int or bool type function parameter #17179 Breaking change (with fallback)

C++

  • [cpp-qt-client] pass QString by const reference instead of by value #16793

C#

  • [csharp][generichost] Handle obsolete params and methods #17344
  • [csharp] Do not inherit additional properties #17140
  • [csharp] Disabled GetHashCode generation #17039 Breaking change (with fallback)

Dart

  • [BUG] [dart-dio] Support for Analyzer configuration options changes in Dart 3 #17099

Java

  • [webclient] explode query parameters support #17441
  • Implementing retry logic to restTemplate #17375
  • [JavaSpring] Enable scopes for all security scheme types #17083

JMeter

  • [jmeter] Fix exception when operationId has $ #17125

Kotlin

  • [kotlin-client] New generator: kotlin-jvm-spring-restclient (new library) #17366
  • [kotlin-client][multiplatform] add iosSimulatorArm64 target #17058

Go

  • [go-server] Add ability to handle nullable query parameter #17321
  • [Go] fix validation of property names when a model has required fields and doesn't allow additional properties #17267

PHP

  • Fix PHP constructor docblock #17324
  • Fix parameter names in Configuration #17305
  • Add enum name mapping support to PHP generators #17195
  • [PHP-NG] check if json_decode was able to decode response #17120
  • [PHP-NG] convert data to string before giving it to preg_match #17119

Postman

  • [POSTMAN] Skip escaping request name #17394

PowerShell

  • Use $Response.Content for deserializing response #17342

Python

  • [python] Fix exception in request body with enum ref #17438
  • [python] fix: Annotate free-form object as dict in Python #17082
  • [python][Feat] Deserialize error responses #17038
  • Add socks5 proxy support for OpenAPI generated python client #16918

Ruby

  • Ruby Client for Faraday: fix file downloading #17333
  • [Ruby] Add model name mapping support to ruby client generator #17408

Rust

  • Add enum name mapping feature to the Rust generators #17290
  • include {min|max}Items validation in rust-server models #17201

Scala

  • Add scala-pekko client generator (new generator) #17417
  • [scala-akka-client] Scala Akka client does not support arbitrary query string parameters #17386

Swift

  • Fix swift5 binary upload #17422
  • [Swift5] add enum name mapping option #17297

TypeScript

  • fix(typescript-axios): use baseURL of (custom) axios instance #17296
  • Generalized mime type support #17285
  • [typescript-axios] Upgrade to axios@^1 #14518

Zapier

  • [Zapier] Updated some dependencies #17420
  • [ZAPIER] added required fields to zapier models generation #17115

v7.1.0 released

13 Nov 09:30
e2a62ac
Compare
Choose a tag to compare

v7.1.0 is the first release with breaking changes (with fallback) after the major release v7.0.0 in Aug 2023.

Breaking changes with fallback:

  • [csharp][generichost] Implement not required nullable properties #16810
  • [PYTHON] generate code based on pydantic v2 #16685
  • Change default value of 'pathParamsAsVariables' config option #16404

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 oneOf merging, upgrade dependencies #16992
  • Better handling of allOf in request body #16991
  • Better handling of API response in 3.1 spec #16986
  • Better isAlias detection #16943
  • Fixed indent lambda to not strip line breaks #16930

C

  • [C] map set to list, add tests #16730

C#

  • Update C# dependencies to newer versions, update reserved word list #16996
  • [csharp] Introducing the enumPropertyNaming option to the C# Generator #16981
  • [BUG][aspnetcore] Fix ASP.NET Core server DateTimeOffset type mapping #16653

Dart

  • [dart-dio] Add toString in Enum on json_serializer #15387

Go

  • [GO] Add support for model name mapping for go #17023
  • [Go][Server] FormParams - Generic Array Type Handling #17001
  • [Go] add generateMarshalJSON key for additional-properties settings #16962
  • [Go] Add multiple file upload support #16956
  • [Go] validate required fields when unmarshalling JSON #16863

Java

  • Add optional parameter for request body #16972
  • [Server][Spring] fix support interface and implementation classes for API controllers #16945
  • [Java][okhttp-gson] fix validateJsonElement not validating enum values #16865
  • [JAVA] fix: oneOf generates incorrect model for primitive types #16834

Kotlin

  • [kotlin][client] Fix compilation error when all auth method is mapped to null #16861
  • Add kotlin-spring beanValidation for RequestBody parameters #16859
  • [Kotlin] ktor JSON serialization handling #16843

N4JS

  • [N4JS] Fix issue with broken module names in case of same names #16937

PHP

  • [php-symfony] Fix type hint for array in comments #16926
  • [PHP] check if json_decode was able to decode response #16879
  • [php-nextgen] fix object serializer, update tests #16764
  • [php-next-gen] fix handling with enums in object serializer #16741

Postman

  • [POSTMAN] [BUG] Correct order of the Postman requests #16983

Python

  • fix parameters_to_url_query returns booleans with upper letter #16947
  • [python] add circular reference import #16940
  • [python] Fix postponed model imports #16882
  • [Postman Collection] Fix path parameter syntax #16827

Ruby

  • [ruby|client] Fix unmarshalling errors of enums inside other objects #16900
  • [ruby] Make File Downloads Threadsafe #16876

Rust

  • chore(deps,rust): requires reqwest 0.11 in blocking generated code #16927
  • fix(rust-server): remove redundant clone #16906

TypeScript

  • [typescript-axios] Fix Explode Query Parameters #16898
  • [typescript-axios] Add Support for Operation Servers #16782

Zapier

  • [zapier] Zapier generator minor fix #16845
    -[Zapier] Fixed zapier objects arrays mapping #16780