v7.27.0 stable release comes with 170+ enhancements and bug fixes.
Below are the highlights of the changes. For a full list of changes, please refer to the "Pull Request" tab.
General
- [DefaultCodegen] fix unescaped description for request body #25502
- Update jackson related dependencies to newer version in the root project #25460
- [core] Keep integer minimum/maximum next to $ref/allOf as integers #25441
- Fix inline Map response examples being treated as media types #25254
- [core] Fix OAS 3.1 typed map misclassified as free-form object (#25224) #25229
- [core] Normalizer: x-items extension for List customization #25105
ASCII documentation
- [asciidoc] fix: preserve multi-line descriptions in table cells #25498
C#
- [csharp][generichost] Raise correct error on discriminator read failures #25500
- [csharp][restsharp] Add useClientFactory option to reuse HttpClient across requests #25482
- [csharp][generichost] Skip unset optional string enums and write null enums #25330
- [csharp] Fix compile errors when schema names collide with framework types #25272
- [csharp][generichost] Refactor custom DateTime formats (dateFormat and dateTimeFormat options are deprecated) (Breaking change (with fallback)) #25213
C++
- [cpp-httplib-server] Generate and compile a spec without models #25279
- fix(cpp-httplib-server): handle missing optional JSON properties #25225
Dart
- [dart-dio] Skip null optional form params and JSON-encode model form params #25307
Elixir
- [Elixir] Percent-encode path parameters in generated API functions #25366
- [Elixir] Fall back to embedded templates when a custom template directory is set #25365
- [elixir] Fix "clauses with the same name and arity" warning in request_builder.ex #25335
Go
- [Go] fix: add testify dependency to go.mod and go.sum unconditionally #25497
- fix(go): avoid iOS build suffix in generated filename #25489
Java
- [Java] Match implicitHeadersRegex case insensitively #25483
- [Java][jaxrs-spec] Annotate nullable @JsonCreator/@JsonbCreator parameters with JSpecify #25439
- [Java][Spring] Do not generate required args constructor that duplicates @lombok.AllArgsConstructor #25396
- [Java][Spring] useRecords: records with additionalProperties #25387
- [Java][Spring] useRecords: records as parameter objects #25351
- [Java][Spring] useRecords: oneOf members as records #25273
- [Java][Spring] Add useRecords: generate plain models as records #25200
- [Java][JAX-RS] Add JSON-B support to jaxrs-spec #25177
- [SPRING;KOTLIN-SPRING] fix: shift 1-based page default/bounds to Spring's 0-based page index #25171
Kotlin
- Fix nullable items in nested Kotlin arrays #25493
- [kotlin] Fix the kotlinx serializer for a number branch in oneOf/anyOf wrappers #25472
- [kotlin][jvm-retrofit2] Use @http with hasBody for DELETE operations with a request body #25469
- [kotlin] Add MicroProfile REST client support #25374
- [SPRING;KOTLIN-SPRING] fix: shift 1-based page default/bounds to Spring's 0-based page index #25171
PHP
- [php][php-nextgen] Support Guzzle 8 alongside Guzzle 7 #25468
- [php-nextgen] Serialize booleans in query strings as true/false by default #25312
- [php-nextgen] Use unknown default case when deserializing unknown enum values #25266
PostgreSql
- Refactor of PostgresqlSchemaCodegen; generated output is unchanged #25431
Python
- fix(python-flask, python-aiohttp): generated tests send apiKey under keyParamName in its declared location #25485
- fix(python-flask, python-aiohttp): generate valid security function names for scheme names with '-' or '.' #25458
- [python] Fix regex patterns starting with forward slash #25413
- fix(python): generate valid code for webhooks with parameters #25346
- REMOVE support to python3.10 #25306
- Add support to python 3.15 #25304
- Share Python legacy model helpers across generated models #24730
Ruby
- [ruby] Add object_id to reserved word #25175
- [ruby-nextgen] Expose nested resources through clients #25002
Rust
- [rust-axum] fix: box recursive model fields #25296
- [rust-axum] Honor additionalProperties: false on object models #25256
- Rust Axum: allow building models-only (e.g. WASM) without server dependencies #25196
- Rust Axum allow oneOf multi values mapping #25195
- [Rust-Axum] Support enum $ref discriminator in oneOf #25166
Scala
- [scala-sttp4-jsoniter] bump Scala to 3.3.9, sttp to 4.0.27, jsoniter-scala to 2.42.0 #25447
- [scala-http4s-server] Use the JSON name for the discriminator and fail decoding on unknown values #25308
Swift
- [swift6] Send binary multipart form params as raw Data #25245
- [swift6][urlsession] Deliver successful responses on apiResponseQueue #25205
- [swift6][alamofire] Report -1, not 500, when there is no HTTP response #25194
- [swift6] Encode request bodies as compact JSON #25193
- [swift6][alamofire] Decode responses and write downloads off the main queue #25192
- [swift6] Send raw Data multipart parts as files #25191
TypeScript
- fix(typescript-...): Fix basic auth without username or password #25462
- fix(typescript-angular,typescript-nestjs): parse boolean options passed as strings #25385
- [typescript] Apply nameMappings and parameterNameMappings before sanitizing names #25333
- Typescript playwright #25282
- [typescript] Fix missing model imports for container types in oneOf schemas (#23286) #25173
- typescript-axios: support TypeScript 6 #25148