v7.21.0 stable release (breaking changes with fallbacks) comes with 190+ enhancements and bug fixes.
This release comes with 3 breaking changes (with fallback):
- Use Spring Boot 3.x by default (useSpringBoot3=true) #23318
- Add option to fallback to non-pointer number, boolean types #23197
- fix c-libcurl generator for int and boolean values by moving to int* #23052
Below are the highlights of the changes. For a full list of changes, please refer to the "Pull Request" tab.
General
- Update jackson dependencies to newer versions #23152
- fix: core: preserve OAS 3.1 numeric exclusive validation constraints in composed schemas #23053
- fix: OAS3.1 deprecated property for array properties #23019
- openapi-generator-gradle-plugin: upgrade Gradle to v8 #22864
- (OpenAPINormalizer): Removed reset of OAS content #22573
C
- Add option to fallback to non-pointer number, boolean types #23197 (Breaking change (with fallback))
- fix c-libcurl generator for int and boolean values by moving to int* (Breaking change (with fallback)) #23052
C#
- [C#] Fix invalid implicit casts #23192
- [csharp] Fix/override central package versions for csharp test projects #23092
- [csharp][generichost] Better file support #22806
C++
- [cpp-qt-client] Remove deprecated SignalE/SignalEFull signals in API classes #23113
- [cpp-qt-client] Optimize generated code #23089
- [cpp-qt-client]Fix variable redeclarations in the api-body.mustache #22982
- Move C++ virtual destructor definition to .cpp files #21530
Dart
- [dart] Fix enum defaults, Object arrays, and nullable required assertions in native serialization #23027
- [dart] Preserve inner generic type for Map<String, List> deserialization #22717
- Add support for Optional in Dart generator (both dart and dart-dio) to distinguish absent, null, and present states #22257
Go
- Update go client README to match modern module support #23292
Java
- Use Spring Boot 3.x by default (useSpringBoot3=true) (Breaking change (with fallback)) #23318
- Decommission springfox from spring generator #23280
- fix(jaxrs): correct add/remove methods for JsonNullable<List> fields #23258
- [Java] Optimize All Enum fromValue Mustache Templates #23165
- Update jackson core in Java restclient to newer version #23151
- [java][resttemplate] Add support for Jackson 3 and Spring Boot 4 in Java resttemplate #23144
- [spring] Add an option "additionalNotNullAnnotations" to include additional NotNull annotations #23096
- feature/jackson3 native #23071
- feat(jackson3): add jackson3 support for Java Client generator - WebClient #23031
- feature(jackson3) add jackson3 support for Java Client generator - Restclient #23023
- fixes(spring) add JsonProperty on setter #22978
- [java-spring] - add 'includeHttpRequestContext' additional property (option) defaulting to "true" for reactive and "false" for blocking to include ServerWebExchange/HttpServletRequest #22910
- spring-http-interface: introduce springHttpClientAdapter, fix paramDoc.mustache #19710
JavaScript
- [JS] Fix handling of oneOf when you have explicitly used a discriminator #23026
Kotlin
- Decommission springfox from kotlin-spring generator #23283
- [kotlin-client] Support for integer enums for multiplatform with custom serializer #23211
- Bring Kotlin client code up-to-speed with changes #23188
- [kotlin][kotlin-spring] Add companionObject option to generate companion objects in data classes #23176
- Upgrade ktor to 3.4.0, kotlin to 2.3.0 #23164
- fix(kotlin): support non-discriminator oneOf/anyOf model and array types with kotlinx_serialization #23007
- Type safe error handling in kotlin spring server with useSealedResponseInterfaces flag #23003
OCaml
- [OCaml][Fix] Unreferenced enum + Direct recursive types #23005
PHP
- [php-nextgen]: Inherit model method docs and fix interface types #23307
- [php-nextgen]: Fix array defaults #23290
- [php-nextgen] Discriminator class detection uses wrong namespace #23287
- PHP NextGen: address PSR-12 formatting violations #23271
- PHP Generator: address PSR-12 formatting violations #23250
- [php-symfony] use baseName for query param lookup in generated controllers #23222
Postman
Python
- [python] Fix deserialization of UUID JSON type in template #23295
- Use Pydantic for json serialization in .to_json method #23210
- [Python] Some fixes for pydantic v1 templates for nested dicts #23162
- [Python] Fix python template for list and dicts of dicts #23112
- feat(python): expose all config properties in constructor #23021
- [PYTHON] switch from mutable bytearray to immutable bytes to avoid pydantic error #22988
- fix(python): missing field_validator import for UUID properties with pattern #22947
- python(pydantic): Use validate_by_name config; populate_by_name will be deprecated #22931
Ruby
- [Ruby] Minor code improvement #23196
Rust
- [rust] Fix array enums for generated object types #23279
- [rust-server] Update mockall to 0.14 #23048
- Rust-server: implement ValidateComposited traits for complex types and add integer enum support #23045
Scala
- Add scalafmt (plugin) to scala-http4s client generator #23300
- feat: support date-time-local in scala generators #22990
- feat: Add oneOf for scala-http4s client #22969
Swift
- [Swift6] Fix TSan race condition in Swift6 SynchronizedDictionary #23091
- fix(swift): disable use of group separator #23062
TypeScript
- [typescript-fetch] Add option to exclude RequestOpts from API interfaces #23181
- fix(typescript-fetch): generate validationAttributes when withoutRuntimeChecks=true #23107
- [typescript-angular] Include OIDC credential headers #23065
- fix(typescript-fetch): ResponseError prototype chain #23010
- [typescript-nestjs-server] improve request parameter handling #22960