Commit Graph

15042 Commits

Author SHA1 Message Date
Marcel Jacek
54fe232d67 [BUG] [JAVA] validateJsonElement fails for required nullable fields (#22912)
* [Java] add missing nullable judgement when required property is true

* [Java] add okhttp template test and regenerate sample

* [Java] add tests when field is nullable and required

* [Java] regenerate samples to fix pipeline error

* [Java] add JSONTest fro RequiredNullableBody class

* run generate-samples after rebase

* review feedback

* review feedback

* fix test

* update hash of test file

---------

Co-authored-by: weirdo0314 <2019215183@stu.cqupt.edu.cn>
2026-02-07 15:05:12 +08:00
Sri Sushma Karra
459f359bf4 [JAVA][FEIGN] Put back hardcoded HTTP Client but without the performance issue created in 8484. This is fix for 21187 (#22905)
* BUG:21187 put back hardcoded client without the issue created in 8484

* BUG:21187 put back hardcoded client without the issue created in 8484

---------

Co-authored-by: Sri Sushma Karra <srisushmakarra@Sris-MacBook-Air.local>
2026-02-07 00:48:00 +08:00
William Cheng
38f0796759 Update jackson-databind-nullable to v0.2.9 (#22901)
* update jackson databind nullable to v0.2.9

* update samples
2026-02-05 16:55:15 +08:00
Alex Humphreys
561e5bf9ab [kotlin][jvm-okhttp4] Fix multipart/form-data with JSON content-type (#22856)
* [kotlin][jvm-okhttp4] Fix multipart/form-data with JSON content-type

Fixes #16457

Fixes two critical bugs in multipart/form-data handling when parts
have Content-Type application/json:

1. IllegalArgumentException: OkHttp throws "Unexpected header: Content-Type"
   because Content-Type was passed in headers map instead of via
   asRequestBody(mediaType)/toRequestBody(mediaType) parameter.

2. Invalid JSON serialization: Non-file parts with application/json
   Content-Type were serialized using toString() instead of proper
   JSON serialization, producing invalid output like:
   "MyObject(field1=value, field2=123)" instead of
   '{"field1":"value","field2":123}'

Changes:
- Filter Content-Type from headers before passing to OkHttp
- Check part Content-Type and use appropriate serializer (JSON vs toString)
- Add integration tests with echo server to verify fix
- Support all serialization libraries (gson, moshi, jackson, kotlinx)

Fixes issues with multipart endpoints that mix file uploads with
JSON metadata, common in REST APIs for document/image uploads.

* Run mvn clean/package, and regenerate samples

* Add fix for kotlinx serialisation issue

* Refactor multipart helpers for reified type parameter support

* Fix kotlinx.serialization multipart by adding serializer lambda to PartConfig

* Fix internal Ktor API usage in multipart forms
2026-02-04 19:44:39 +08:00
Dennis Ameling
9547ebdc98 [typescript] make TypeScript version configurable (#20064) 2026-02-04 19:01:22 +08:00
Dennis Ameling
48b7c85cd4 [kotlin-server] Add polymorphism, oneOf and allOf support (#22610)
* [kotlin-server] Add polymorphism support

* Fix CI triggers

* Fix FILES

* Fix samples and related triggers

* Fix FILES

* Add discriminator property to sealed class

* Fix double nullability issue

* Update samples
2026-02-04 17:02:02 +08:00
Jachym Metlicka
3ecb49060e [JAVA-SPRING;KOTLIN-SPRING] - add possibility to override x-implements and x-kotlin-implements via config options. (#22839)
* feature/add-skip-x-implements

* feature/add-skip-x-implements

* feature/add-x-implements-overrides support in tooling

* add basic unit test for x-implements and x-implements-overrides

* add implementation and unit test for schemaImplements

* add "java.io.Serializable" directly via x-kotlin-implements

* add schemaImplements and schemaImplementsFields support to kotlin-spring

* add xImplementsSkip additional property

* add xKotlinImplementsSkip and xKotlinImplementsFieldsSkip additional properties

* add unit tests

* add documentation

* commit changes and add missing interface

* add documentation

* add output to samples

* change logs

* fix issue #22756

* revert unrelated formatting changes

* nudge test rerun

* implement feedback from CR

* check compilation success

* fix interfaces
2026-02-04 15:57:00 +08:00
Jachym Metlicka
a973d91560 [BUG] [KOTLIN-SPRING] @HttpExchange in declarative interface does not support property placeholders (#22882)
* fix kotlin-spring declarative http interface

* fix kotlin-spring declarative http interface

* fix kotlin-spring declarative http interface
2026-02-04 15:15:16 +08:00
NeedmeFordev
d284a9aef1 fix(spring): Add Nullable import for array-type models (#22788) (#22844)
* fix(spring): Add Nullable import for array-type models (#22788)

* refactor(spring): Extract helper methods for Nullable import logic (DRY)

* chore: Regenerate Spring samples after Nullable import fix

* Update sample files after regeneration

* Fix phpunit.xml.dist: replace literal backslashes with forward slashes in directory paths

* Add JavaDoc comment for addSpringNullableImportForOperation method

* Fix line endings: replace CRLF (\r\n) with LF (\n) in exampleJson string literals

* Remove unused Nullable imports from PR-related Spring sample files

* Revert date/time example value changes (regeneration artifacts)

* Fix: Skip Nullable import for enum models
2026-02-04 13:04:15 +08:00
Kengo Seki
a25bed78cd [BUG] [java-camel] Align pom.xml generation with the documentation (#22888) 2026-02-03 20:48:26 +08:00
dersvenhesse
7c5f7cf4e5 docs: update useSpringBoot3 note (#22881)
* docs: update useSpringBoot3 note

* chore: moved changes to code classes

* docs: add generated docs

* docs: update java-camel

* docs: ecape ≥
2026-02-03 13:08:48 +08:00
Rens Groothuijsen
2ab70fa46b fix(typescript-axios): Ignore unused parameter on JSON serializer replacer function (#22858) 2026-02-03 13:08:08 +08:00
Pierre Segalen
95911180f6 Fixed TypeScript code generation for oneOf using arrays (#22780) 2026-02-02 13:20:48 +01:00
George Holderness
1cafc1673a fix: apply integer type fitting for Rust params (#22853)
We already have logic in postProcessModelProperty to fit integer
parameters into the correct Rust primitives. However, this doesn't apply
to other kinds of parameters so integer-typed parameters which end up in
function calls for Api traits in lib.rs are always i32, even when this
is improper.

This commit refactors integer type fitting so that we can run it on both
processParam and model post-processing.
2026-02-02 19:53:10 +08:00
dsteeley
268213004e feat: Support selective ssl/tls backend in rust-server to optionally remove openssl (#22825)
* feat: Support selective ssl/tls backend in rust-server to avoid always requiring openssl

* feat: Switch default features so a user must select SSL backend

* Further tweaks to rust-server HTTPS feature flagging
2026-02-02 17:58:32 +08:00
William Cheng
ad2044c581 minor fix using jackson check (#22877) 2026-02-02 17:40:07 +08:00
Luís Cabral
811529cb66 Fix Jackson Serialization of additionalProperties on java and jaxrs-spec (#22366) 2026-02-02 15:47:11 +08:00
William Cheng
897590ae6a update undici to newer version in typescript generator (#22874) 2026-02-02 15:26:17 +08:00
Bruno Coelho
fd17603109 [Kotlin][Client] Migrate Enum.values() to Enum.entities (#22852) 2026-02-02 11:57:12 +08:00
William Cheng
7506b6ca02 add defaultToEmptyContainer option to java generators (#22869) 2026-02-02 00:27:01 +08:00
Jachym Metlicka
95e8360c19 [KOTLIN-CLIENT] fix Parent interface class having incorrect collection property type List instead of Set (#22850)
* fix issue #22696

* reduce unnecessary repetition in mustache schema

* add unit tests & regenerate files

* regenerate files
2026-02-01 15:11:56 +08:00
A. Todisco
6f211a20e8 [Protobuf] Fix Discriminator Issue and add capability Enum Extraction (#22740)
* fix(protobuf-codegen): Fix protobuf import path with discriminator

This PR fixes a critical bug in the protobuf schema generator where models using discriminators with llOf composition were generating invalid import paths when child schemas contained references to other models.

* fix: Add missing element in OpenAPI discriminator test case

* feat(protobuf-generator): Improve protobuf generation

* Improve management of inheritance
* Improve management of discriminator
* Allow to separate inline enums in external files
* Add unit test

* fix: Improve logic when extracting enums to avoid collision in enum values

* fix: Manage case with Enum in lists

* fix: Fix issue on enum extraction

Fix issue linked to enum in array when there is inheritance or discriminator

* doc: Add documentation for new parameter

* chore: Update protobuf samples

---------

Co-authored-by: Anthony TODISCO <Anthony.TODISCO+amadeus@amadeus.com>
2026-01-30 16:42:00 +08:00
Julien
82ad061fe9 [go] Fix text escaping in example code generation (#22841)
Wrap example values with escapeText() to properly escape special
characters in generated Go client code examples

Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
2026-01-30 11:23:49 +08:00
Anderson de Borba
063a780c7a Removed unnecessary cast to HttpClientErrorException as both classes in the catch extend HttpStatusCodeException (#22849) 2026-01-30 10:59:54 +08:00
Matt Pollock
c56ea5557a [R] avoid to-JSON issues when R6 classes contain lists of R6 classes (#22828)
* [R] avoid to-JSON issues when R6 classes contain lists of R6 classes

* fix missing comma

* only include extractor methods when they are needed

* regenerate samples

* fix typo
2026-01-29 12:34:17 +08:00
scarf
f7ac63a188 feat(normalizer): add SORT_MODEL_PROPERTIES rule for deterministic output (#22836)
Add new OpenAPINormalizer rule SORT_MODEL_PROPERTIES that sorts schema
properties alphabetically by name. This ensures deterministic code
generation output regardless of property ordering in the source spec.

The rule:
- Uses TreeMap to sort properties by natural string order
- Applies at the OpenAPI normalization stage, working for all generators
- Is opt-in (defaults to false) to maintain backward compatibility

Usage:
  openapi-generator generate --openapi-normalizer SORT_MODEL_PROPERTIES=true ...

Fixes non-deterministic property ordering that could cause spurious diffs
in generated code when the source schema order varies.
2026-01-28 17:36:18 +08:00
Andreas Maechler
3db927e060 [jaxrs-spec] Add @Generated annotation to enums (#22829)
* Add @Generated annotation to enums in jaxrs-spec

- Adds @Generated annotation to enum classes

* Update all samples
2026-01-28 14:26:51 +08:00
Charaf Rezrazi
9fa18d0c81 feat(typescript): Update isomorphic-fetch file to allow for response streaming (#22673)
* Update isomorphic-fetch file to allow for response streaming (#1)

* Update samples/openapi3/client/petstore/typescript/builds/inversify/http/http.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update samples/client/echo_api/typescript/build/http/http.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update samples/openapi3/client/petstore/typescript/builds/object_params/http/http.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* update samples

* fix tests

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-28 02:01:31 +08:00
Julian Vennen
6022e4ec7d [php][php-nextgen] Fix nullability when multiple response types are possible (#22827)
* [php][php-nextgen] Fix nullability when multiple response types are possible

* [php][php-nextgen] Fix test
2026-01-28 00:49:20 +08:00
William Cheng
11e06d1e77 update assertj to newer version (#22824) 2026-01-27 15:13:49 +08:00
William Cheng
3ed013966b [python-fastapi] Set python version to 3.10 (#22823)
* set python version to 3.10

* update doc
2026-01-27 14:15:25 +08:00
William Cheng
73a486a726 Update python-multipart to newer version (#22821)
* update python mltipart to newer version

* update python version in workflow

* update

* update version

* update
2026-01-27 12:38:38 +08:00
Adrian Boczkowski
ad948aa093 [Rust] Update reqwest to 0.13 and reqwest-middleware to 0.5 (#22816)
* [Rust] Update reqwest dependency to 0.13 with query and form features

Update the Rust client generator template to use reqwest 0.13 instead
of 0.12, as requested in issue #22621.

In reqwest 0.13, the `query()` and `form()` methods have been moved
behind feature flags and are disabled by default. Since the generated
Rust clients extensively use both methods, these features must be
explicitly enabled.

Changes:
- Updated all reqwest dependencies from ^0.12 to ^0.13
- Added "query" and "form" to reqwest feature flags for all variants:
  - Blocking client configuration
  - Async client with file stream support
  - Async client without file stream
  - Reqwest-trait variant
- Updated reqwest-middleware features for consistency

This maintains full backward compatibility as only the dependency
version and features change. The API surface of generated code
remains identical.

Fixes #22621

* [Rust] Updated samples

* [Rust] Rename rustls-tls feature to rustls to match reqwest 0.13

In reqwest 0.13, the rustls-tls feature was renamed to rustls.
This updates the Cargo.mustache template and all generated samples
to use the new feature name, fixing CI build failures when using
--all-features flag.

* [Rust] Upgrade reqwest-middleware to 0.5 for reqwest 0.13 compatibility

The previous reqwest-middleware 0.4 depends on reqwest 0.12, which caused
type conflicts when upgrading to reqwest 0.13:
- reqwest::Error (from reqwest 0.13)
- reqwest_middleware::reqwest::Error (from reqwest 0.12 via middleware)

These are different types from different versions of reqwest.

reqwest-middleware 0.5 is compatible with reqwest 0.13, resolving the
version conflict. With both using the same reqwest version, the re-exported
types are now correctly aligned.

* [Rust] Use query and form features from reqwest-middleware

It adds "query" and "form" features for reqwest-middleware crate in petstore-async-middleware example and Cargo.mustache template.

---------

Co-authored-by: Emil Bonne Kristiansen <emilbonnek@gmail.com>
2026-01-27 12:15:21 +08:00
dependabot[bot]
047ea41087 build(deps-dev): bump org.assertj:assertj-core (#22818)
Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.23.1 to 3.27.7.
- [Release notes](https://github.com/assertj/assertj/releases)
- [Commits](https://github.com/assertj/assertj/compare/assertj-core-3.23.1...assertj-build-3.27.7)

---
updated-dependencies:
- dependency-name: org.assertj:assertj-core
  dependency-version: 3.27.7
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-27 12:01:59 +08:00
devhl-labs
8cd3ea2457 added xml comments and restrict some access (#22796) 2026-01-26 23:58:31 +08:00
Martin Tomašovič
a4985cad28 [csharp][generichost] Add HTTP client name to fix client duplicity (#22118)
* Add HTTP client name to fix client duplicity

* Fix samples
2026-01-26 23:57:32 +08:00
azertyalex
422e30a3d9 Generate request config typescript fetch v2 (#22815)
* Add create requestOpts method to {{classname}}Interface #21708 (#21709)

* feat(types): Add request configuration method to {{classname}}Interface

* update docs and samples

* refactor: change naming to better mirror openapi context

* docs: update typescript-fetch

* feat(types): Add request configuration method to {{classname}}Interface
2026-01-26 23:53:33 +08:00
Esteban Gehring
67cbfb3cad Revert "Add create requestOpts method to {{classname}}Interface #21708 (#21709)" (#22814)
This reverts commit 51d5310dae.
2026-01-26 14:55:24 +01:00
Bruno Coelho
43b15fbc25 [swift6][client] Remove unnecessary Combine checks (#22810) 2026-01-26 12:22:49 +00:00
Libor Nenadál
695f7076bf [BUG][typescript-angular] apiKeys cause service compilation errors (#22775)
* [BUG][typescript-angular] apiKeys cause service compilation errors

Updated TypeScript Angular `configuration.mustache` to properly handle
apiKeys in query parameters by using `OpenApiHttpParams` instead of
`HttpHeaders` to avoid compilation errors.

Fixes #22774

* add generated samples
2026-01-26 11:51:31 +01:00
azertyalex
51d5310dae Add create requestOpts method to {{classname}}Interface #21708 (#21709)
* feat(types): Add request configuration method to {{classname}}Interface

* update docs and samples

* refactor: change naming to better mirror openapi context

* docs: update typescript-fetch
2026-01-26 11:50:10 +01:00
Bruno Coelho
a0dc0e2eb8 [swift6] fix Vapor build, disable swift 5 tests on CI and enable more swift 6 tests on CI (#22805) 2026-01-25 17:45:12 +00:00
Bruno Coelho
d19f0cd348 [swift6][client] Increase minimum supported SDK to accommodate swift concurrency (#22802)
* [swift6][client] Increase minimum supported SDK to accommodate swift concurrency

* [swift6][client] Increase minimum supported SDK to accommodate swift concurrency
2026-01-25 10:21:52 +00:00
Bruno Coelho
852a6075b2 [swift6][client] Add new hooks to OpenAPIInterceptor (#22800) 2026-01-25 00:18:38 +00:00
Bruno Coelho
1f4017a33f [swift6][client] improve swift 6 thread safety (#22801) 2026-01-24 23:58:39 +00:00
Bruno Coelho
2d53488404 [swift6][client] make api calls concurrent (#22790)
* [swift6][client] make api calls concurrent

* [swift6][client] improve swift 6 thread safety

* [swift6][client] improve swift 6 thread safety
2026-01-24 22:03:35 +00:00
Roman Doboni
5926c3175e Fix isRelativeUrl incorrectly detecting URLs containing @, -, ~, . as not relative. (#22768) 2026-01-25 00:40:23 +08:00
Artur Wolf
761cb777f6 Repaired partial_header include for generator csharp (#22442) 2026-01-24 23:56:36 +08:00
madsvonqualen
e868637587 [BUG] [HTML] Fix html array types (#22795)
* Fix HTML generator to display array types for body parameters

The HTML generator (htmlDocs) was not properly displaying array types
for request body parameters. When an endpoint accepted an array of
objects as input, only the base type was shown (e.g., "User") instead
of the full array type (e.g., "array[User]").

This fix updates the bodyParam.mustache template to include container
type information (array, map, etc.) when present, matching the format
already used for return types.

Before: User
After: array[User]

The fix wraps the baseType with containerType[...] when isContainer
is true, ensuring consistent type display across both input and output
types in the generated HTML documentation.

* Add html.yaml config and document testing requirements

Due to network limitations in the automated build environment, the
following steps could not be completed but are required per
contribution guidelines:

1. Build project: ./mvnw clean install -DskipTests
2. Regenerate samples: ./bin/generate-samples.sh bin/configs/html.yaml
3. Commit updated samples: git add samples/documentation/html/

Added:
- bin/configs/html.yaml: Configuration for html generator samples
- TESTING_STEPS.md: Detailed instructions for completing the PR

The template fix in bodyParam.mustache is complete and correct.
Sample regeneration is needed to verify the fix visually in the
generated HTML documentation.

* Add concrete example showing the bug location in current HTML sample

* Update HTML samples to verify array type fix

Regenerated samples/documentation/html/index.html to verify the array
type fix in bodyParam.mustache is working correctly.

Verified fix:
- Before: <div class="param">User <a href="#User">User</a> (required)</div>
- After:  <div class="param">User array[<a href="#User">User</a>] (required)</div>

The createUsersWithArrayInput endpoint (and all array body parameters)
now correctly displays "array[Type]" instead of just "Type".

Also removed TESTING_STEPS.md as testing is now complete.

* Update VERSION to 7.20.0-SNAPSHOT to match project version

The samples were regenerated using npm's openapi-generator-cli (v7.4.0),
but the CI expects the VERSION to match the current development version
(7.20.0-SNAPSHOT). Updated to prevent CI failures.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-24 23:27:16 +08:00
Bruno Coelho
ea6f4c8780 [swift6][client] mark PromiseKit as deprecated (#22792)
* [swift6][client] make PromiseKit as deprecated

* [swift6][client] make PromiseKit as deprecated

* [swift6][client] make PromiseKit as deprecated
2026-01-23 17:02:26 +00:00