v7.25.0 stable release (breaking changes with fallbacks) comes with 240+ 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
- Update parser to newer version (2.1.46) #24731
- Fix missing imports for schemaMapping in API interfaces #24672
- [GRADLE-WRAPPER] Generator status message visibility update #24670
- Stable hash for determining if input specification changed (Maven Plugin) #24645
- fix(normalizer): restore behavior of clearing a oneOf if the schema content cannot currently be used by the generator #24585
- [generators] Give clients a way to inject vendor overrides #24571
- Fix response isArray, isMap flags #24566
- Move shared git push template to _common #24565
- Add logic to handle any type (3.1) with additional properties #24559
- Normalize map schema (3.1 spec) #24558
- fix: keep allOf members that have properties alongside a validation keyword #24551
- feat(core): add splitOperationsByContentType option to divide operations #23935
C#
- fix(csharp): make generichost oneOf constructors public #24700
- [csharp][generichost] Allow property accessor overrides #24652
- [csharp][generichost] Refactor AsModel template #24650
- [csharp][generichost] Make host configuration optional #24451
- [csharp][generichost] Update partial to create HttpClient #24354
C++
- fix(cpp-boost-beast): validate request components #24351
Crystal
- fix(crystal): support Crystal 1.21 #24748
Dart
- Fix nullable query param #24738
- [dart] Do not convert format: date to UTC before formatting #24706
- Fix anyOf serialization in dart-dio #24605
- Fix Dart native nullable number deserialization (#20238) #24386
- [BUG][DART] PATCH tri-state optional handling #23696
Go
- fix(go): emit the oneOf no-match error once instead of once per member #24683
- Update go-server deps #24527
- Fix Golang pattern validation with regex fails on commas #24349
- fix(golang): use datatype only for enums instead of format #24337
Java
- [SPRING;KOTLIN-SPRING] Fix: enhance pageable parameter detection with OpenAPI reference resolution #24758
- [JAVA] [Spring] JSpecify, fix nullable + required field #24711
- Add support for interface only with vertx #24655
- [Java] Fix generated build.gradle incompatible with Gradle 9 #24649
- [Java][jaxrs] support disableDiscriminatorJsonIgnoreProperties in typeInfoAnnotation #24532
- [jaxrs-spec][quarkus] Migrate the Jakarta path to Quarkus REST and fix file upload types #24455
- [java][spring][kotlin-spring] Make @JsonInclude/@JsonSetter opt-in to stop overriding global ObjectMapper #24428
- [spring-boot]: generate PreAuthorize from OpenAPI security scopes #24380
- [BUG] [JavaSpring] Change Dangling package JavaDoc into Regular Comment Block #24278
- [Java] Generate nullability annotations on all-args constructor parameters #24114
- [Java] [Spring Client] Add an exception provider interface to allow for exception redefinition #23878
Kotlin
- [SPRING;KOTLIN-SPRING] Fix: enhance pageable parameter detection with OpenAPI reference resolution #24758
- [FIX][KOTLIN][SPRING] mark @PARAM:JsonProperty as required in generated models when required in open api spec #24754
- feat(kotlin): Add support for Jackson3 and SpringBoot 4 #24709
- [kotlin-spring] feature: Add x-extra-imports vendor extension #24638
- [kotlin] Add = null default for optional parameters in jvm-ktor and javalin templates #24556
- refactor(kotlin): remove unknown default enum case for inline operation enums in multiplatform library #24521
- [java][spring][kotlin-spring] Make @JsonInclude/@JsonSetter opt-in to stop overriding global ObjectMapper #24428
- [KOTLIN-SPRING] fix: use spring-cloud-dependencies BOM in Spring Boot 4 spring-cloud pom #24326
PHP
- [PHP] Replace deprecated Guzzle Utils::jsonEncode with native json_encode #24688
- [php-laravel] Use baseName instead of paramName for request lookup & validation keys #24400
- [php-nextgen] Add Flag to Allow Ignoring Operation Servers #24328
- [php-nextgen] Fix Nested oneOf/anyOf Behavior #24318
- [php-nextgen] Add anyof Support #24306
PowerShell
- fix(powershell): replace UrlEncode with System.Uri EscapeDataString for path parameter encoding #24604
Python
- [python] Deserialize Optional[...] response types #24718
- Decommission tornado support in python generators #24564
- python: replace third-party lazy imports with the standard library #24402
- fix(python-fastapi): multipart array files and Form/File wire-name aliases #24381
- [python] reserve generated helper and pydantic model_* property names #24358
- [python] require Python >= 3.10 and restore full dependency floors #24280
- [python-fastapi] Use ... as default value rather than None (#22494) #23398
Ruby
- [ruby-nextgen] Let Configuration carry Faraday SSL options #24536
Rust
- [rust-server] Generate the auth scheme precedence tests #24690
- [rust-server] Restrict from_headers matches to the intended auth scheme #24607
- [Rust] Apply the isAnyType param fallback to operations without path params #24570
- fix: Updates to take latest serde_valid in rust-server generator #24334
Scala
- [scala-sttp4] Model named Request shadows sttp.client4.Request #24682
- [scala-sttp4] fix Circe codecs not preserving original JSON property names #24681
- [scala-sttp4] Omit optional fields set to None instead of serializing null (circe) #24362
- [scala-sttp4] Fix enum operation parameters: type import and wire-value toString #24346
- [scala-sttp4-jsoniter] add generic Option and Seq codecs for jsoniter-scala #23800
Swift
- [swift6] Emit enum description for query parameters #24639