Commit Graph

8661 Commits

Author SHA1 Message Date
dabdirb
fb2878cb23 fix #22492 [BUG][JAVA][MAVEN] Lombok @Getter disables validation and #19743 #18794 #17793 #17606 (#22544)
* fix #22492 [BUG][JAVA][MAVEN] Lombok @Getter disables validation and #19743 #18794  #17793 #17606

* fix #22492 [BUG][JAVA][MAVEN] Lombok @Getter disables validation and #19743 #18794  #17793 #17606

* fix #22492 [BUG][JAVA][MAVEN] Lombok @Getter disables validation and #19743 #18794  #17793 #17606

* fix #22492 [BUG][JAVA][MAVEN] Lombok @Getter disables validation and #19743 #18794  #17793 #17606

* fix #22492 [BUG][JAVA][MAVEN] Lombok @Getter disables validation and #19743 #18794  #17793 #17606

* fix #22492 [BUG][JAVA][MAVEN] Lombok @Getter disables validation and #19743 #18794  #17793 #17606
2025-12-19 13:19:35 +08:00
Albert Waninge
a3d03bad09 [kotlin] fix query parameter encoding (#22512)
* #22339 fix query parameter encoding

* #22339 fix query parameter encoding

* #22339 ran generate-samples with some local adaptations

---------

Co-authored-by: AlbertWaninge <albert.waninge@edsn.nl>
2025-12-18 17:31:27 +08:00
William Cheng
6abe6ff1c4 fix(cpp-qt): Fix enum query parameter serialization for both inline and referenced enums (#22559)
* fix(cpp-qt): Fix enum query parameter serialization for both inline and referenced enums

For enum query parameters, the template was incorrectly using asJsonObject()
which returns {"value": "enumValue"} and then iterating over keys, using
"value" as the parameter name instead of the actual parameter name.

This fix adds special handling for both inline enums (isEnum) and referenced
enums (isEnumRef) to use asJson() directly, which returns the correct enum
string value for URL serialization.

Fixes enum query parameters like ?scope=property instead of ?value=property.

Completes the fix started in PR #21211 which added the asJsonObject() method
to make enum code compile, but the template logic was still incorrect for URL
query parameter serialization.

Note: The petstore samples don't contain enum query parameter tests to
demonstrate this fix (they use string arrays). Future contributors may want
to add enum query parameter examples to better showcase this functionality.

* add tests for enum inline, ref for query parameters

* update cmake version to 3.5

---------

Co-authored-by: Sohaib Athar <sohaibathar@gmail.com>
2025-12-18 16:52:50 +08:00
Tim Grohmann
a529769bf3 feat: #22267 Use type formatting logic while applying non-container exploded query parameter (#22268) 2025-12-18 16:18:14 +08:00
Dennis Melzer
1722f5591b feat: prevent variable resolution when prefixed with $ in server URL templates (#22550)
* feat: no url replacement  for $ variables

* fix test
2025-12-18 15:45:18 +08:00
William Cheng
20136f4b9a [REQ-22001][FIX] Add MCP server support to apiService.mustache (#22558)
Co-authored-by: RL6172 <thibaut.rety@external.engie.com>
2025-12-18 13:52:48 +08:00
dsteeley
f484aeac2c feat: Add serde_validate support. (#22553)
In addition to existing rust-server validation support.
2025-12-18 00:12:01 +08:00
thibautrety
833d1d3d38 [REQ-22001] Add MCP server support to apiService.mustache (#22197)
* Add MCP server support to apiService.mustache

Refactor apiService.mustache to include MCP server support and enhance operation methods.

* Update samples

* update samples in wsl

* remove useless import when mcp is disabled

---------

Co-authored-by: RL6172 <thibaut.rety@external.engie.com>
2025-12-17 16:42:55 +08:00
Nicolas Rodriguez
8e7fd3cfb9 fix(generator): fix java.lang.NullPointerException: Cannot read field "name" because "codegenModel" is null (#22545) 2025-12-17 16:39:49 +08:00
Christopher Molin
149fdcb61f [Java] Use Fully Qualified Name for java.util.Locale in Generated Classes (#22342)
* Remove Imports of `Locale` from all `model.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `modelEnum.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `oneof_model.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `api.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `anyof_model.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `pojo.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `ApiClient.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `ApiKeyAuth.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `JSON.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `HttpSignatureAuth.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `Play24CallFactory.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `Play25CallFactory.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `Play26CallFactory.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `apiException.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `clientConfiguration.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `RequestFactory.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `httpLoggingFilter.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `securityApiUtils.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Remove Imports of `Locale` from all `validatorUtils.mustache`-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Use `Locale`-class Via Fully Qualified Name

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Update Generated 'sample'-files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Revert Changes

* Inline `Locale` Imports

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Update Generated 'source' Files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Update `kotlin-spring/model.mustache`

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Update Generated 'sample' Files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Update Generated 'sample' Files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Update Generated 'java-feign-hc5' Sample Files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Update Generated Sample Files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

* Update Generated Kotlin Sample Files

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>

---------

Signed-off-by: Chrimle <28791817+Chrimle@users.noreply.github.com>
2025-12-17 15:15:32 +08:00
ricardogrande-masmovil
e1edb9e645 fix: missing imports for array of files and date-time parameters (#1) (#22390) 2025-12-17 15:13:45 +08:00
Jurrie Overgoor
e4a26ce307 [Java] Support JsonNullable in JaxRS-spec (issue #9018) (#22412)
* Support JsonNullable in JaxRS-spec

* Add sample files that are now modified (new import)

* Fix build issue with jaxrs-spec-microprofile-openapi-annotations sample
2025-12-17 15:04:37 +08:00
essapp
1d79f3671a fix: Correct the jsonb according to the logic of jackjson, and solve the problems caused by the changes in v4 style. (#22488)
Co-authored-by: rainmenzhao <43979071+rainmenzhao@users.noreply.github.com>
2025-12-17 15:03:52 +08:00
Mattias Sehlstedt
09a5800771 Centralize the definition of vendor extensions tied to the discriminator (#22542) 2025-12-17 14:59:18 +08:00
Ondra Karmazín
a9f439f1c6 [kotlin-client] ALL: Stop html-escaping default enum parameters (#22506)
The enum constants may be backtick-escaped reserved words (e.g. "DocumentDisposition.`inline`"). Mustache html-escapes the backticks, leading to invalid code such as "DocumentDisposition.&#x60;inline&#x60;".

This change adjusts all Kotlin client Mustache templates to pass the values through as raw values.
2025-12-14 13:03:38 +08:00
Ondra Karmazín
c5ebcda902 [kotlin-client] Vert.x: Fix enum class name template for default operation parameters (#22504)
This change brings the class name construction in line with the other Kotlin client generators.

Fixes #22503
2025-12-13 23:45:29 +08:00
Ramon Onis
b06fdb5781 fix(kotlin): add JsonCreator/JsonValue to Jackson enums (#22535)
* fix(kotlin): add JsonCreator/JsonValue for numeric enums

* Regenerate samples

* Update title in numeric enum YAML file

* rename test
2025-12-13 18:54:45 +08:00
Mateusz Piękos
5f28987b17 Adapted scala-sttp4-jsoniter to use orFail instead of getRight when using separateErrorChannel=false (#22536) 2025-12-13 18:53:14 +08:00
Kevin Lin
7ccd039a7b [java][okhttp-gson] fix: JSON deserialization fallback for String return types (#22498)
* Use String-based JSON deserialize method with fallback for String return types

* Regenerate samples
2025-12-11 14:47:48 +08:00
Thiago Arrais
8f8001ea1a fix(go): do not generate unused imports (#22524)
Fixes #20599
2025-12-10 19:54:42 +08:00
dsteeley
5c28ab4db2 fix: Update rust-server Cargo.toml to fix client feature compile (#22511) 2025-12-09 15:54:36 +08:00
Jeremy Audet
cfcacf3074 Make python code compatible with urllib3 v2.6.0+ (#22520)
openapi-generator still uses methods that have been removed from urllib3
v2.6.0. The solution is as described in urllib3's changelog:

> Removed the HTTPResponse.getheaders() method in favor of
> HTTPResponse.headers. Removed the HTTPResponse.getheader(name,
> default) method in favor of HTTPResponse.headers.get(name, default).
> (#3622)

See https://urllib3.readthedocs.io/en/latest/changelog.html

Close #22514
2025-12-09 15:29:32 +08:00
William Cheng
5a6fcd3bd5 [kotlin][client] Deprecate jvm-volley support (#22521)
* deprecate kotlin jvm volley support

* delete files
2025-12-09 15:27:21 +08:00
Yong-Han Lin
3b232f6a90 fix: five nondeterministic tests (#22513) 2025-12-09 14:50:08 +08:00
William Cheng
8ad6fff26f python-fastapi: avoid log message in constructor (#22522)
* python-fastapi: avoid log message in constructor

* update doc
2025-12-09 14:47:41 +08:00
Nicolas Rodriguez
c91df9edd4 [crystal] fix Model#to_h method (#22508)
* fix(crystal): fix Model#to_h method

* fix(crystal): make optional parameters truly optional

* fix(crystal): update samples

* fix(crystal): fixx model validation with nil values

* feat(crystal): improve enum validation

* fix(crystal): use litteral regex

* fix(crystal): call #to_h instead of #to_hash

* fix(crystal): update samples
2025-12-09 11:31:15 +08:00
Sergey Fetiskin
b86213bea3 [typescript-node] Fixes generation when parent contains TypeScript primitive (#22401)
* fixes parents when schema has additional properties

* exclude primitive types from parent property
2025-12-08 22:26:42 +01:00
William Cheng
ce21b9e503 update urllib3 to newer version (#22515) 2025-12-08 22:20:35 +08:00
William Cheng
38c622019e fix(kotlin-client): jvm-spring-webclient: fix compile error when kotlin detects nullable body (#22509)
* fix(kotlin-client): jvm-spring-webclient: fix compile error when kotlin detects nullable body

* update samples

---------

Co-authored-by: detomarco <idp.detoma@gmail.com>
2025-12-08 16:10:07 +08:00
William Cheng
74c551cd88 disable ts integration testws (#22501) 2025-12-07 15:46:28 +08:00
Károly Kiripolszky
8d17f662de fix(KotlinClientCodegen): store parsed bool values in additionalProperties (#22491) 2025-12-07 10:56:36 +08:00
William Cheng
da778c46b0 add option to set params_encoder (#22484) 2025-12-02 17:54:44 +08:00
Nicolas Rodriguez
f125e1072f [crystal-lang] Various fixes for Crystal client (#22465)
* [crystal] implement "multi" params

See: https://github.com/mamantoha/crest?tab=readme-ov-file#crestnestedparamsencoder

* [crystal] remove useless templates (imported from ruby)
2025-12-02 11:15:35 +08:00
William Cheng
9a6f14ad47 Add workflow to test Crystal client (#22477)
* add workflow to test crystal client

* update

* shards install

* fix

* use localhost
2025-12-02 11:04:54 +08:00
Julian Ste
2d3082a1b7 Fixes oatpp generator to expose network server on 0.0.0.0 instead of localhost (#22330)
* Change server address from 'localhost' to '0.0.0.0'

* Change server connection to listen on all interfaces
2025-12-02 10:12:24 +08:00
KRJ-RTX
18b359ba17 Add Basic and Bearer Authorization to the CPP Pistache generator (#22337)
* [cpp][pistache-server] Add extraction and forwarding of credentials for HTTP Basic protected endpoints.

* [cpp][pistache-server] Change HTTP Basic credentials to be contained on a struct instead of two std::strings

* [cpp][pistache-server] Add callbacks to authenticate http basic credentials.

* [cpp][pistache-server] Add `void* userdata` to HttpBasicCredentials.

This allows for data ft be passed on from the authenticator to the
handler implementation. For example a userid that has already been
looked up

* [cpp][pistache-server] Add support for HTTP Bearer authentication.

* [cpp][pistache-server] Add new file `api-base-source.mustache`

`api-base-source.mustache` contain implementations of security
related methods and also the empty constructor.

* [cpp][pistache-server] Add re-generated samples.

* Fix PR 19978: Updated indentation levels and fixed test problems

---------

Co-authored-by: Morten Winkler <morten@winkler.dk>
2025-12-02 10:07:47 +08:00
dsteeley
41f97d8187 fix: Rust-server bytes response fixed to not attempt string conversion (#22471) 2025-12-01 21:36:50 +08:00
scarf
5a2503dc49 fix(typescript-fetch): fix logic when stringEnums is explicitly set to false (#22466)
Passing `stringEnums=false` was incorrectly treated as `true`. This went unnoticed since the default behavior works as expected. Made the logic consistent with `typescript-axios`.
2025-12-01 09:51:13 +01:00
Linh Tran Tuan
1e7ca08ccc [Rust-Axum] Fix: do not gen Partial Ord/Ord for Any type (#22469) 2025-12-01 16:38:32 +08:00
William Cheng
c0d98864e0 [Java] fix missing header parameters in the generated google-api-client Java client (#22468)
* fix(java): add header parameter handling for google-api-client

  Header parameters defined in OpenAPI specs were being accepted as method
  parameters but never actually added to the HTTP request.

  Fixes #22457

* update samples

* minor enhancement

---------

Co-authored-by: artnan <artn@outlook.com>
2025-12-01 13:09:28 +08:00
William Cheng
788f67dd01 Fix Spring Framework 7 compatibility in jvm-spring-restclient and jvm-spring-webclient (#22467)
* Fix Spring Framework 7 compatibility issues

Fixes #22368

* update samples

---------

Co-authored-by: jwalter <joakim.waltersson@gmail.com>
2025-12-01 12:24:37 +08:00
Piotr Kubowicz
7b83462a83 [kotlin] Make API classes open (non-final) unless nonPublicApi is used (#22461)
* [kotlin] Make API classes open (non-final) unless nonPublicApi is used

By making those classes open, AspectJ can be used to enhance their
behavior.

I'm not changing kotlin-multiplatform templates, where 'open' was
already present before my changes.

Closes #22271

* Fail Kotlin sample compilation if API classes stop to be public

Serves as a 'regression test'.
2025-12-01 00:03:29 +08:00
dsteeley
453997bd16 Ensure rust-server compiles with no-default-features (#22445) 2025-11-30 23:05:25 +08:00
Elric Milon
e9bc44bebe [Rust] Implement support for multipart file uploads for reqwest-async and reqwest-trait (#22454)
* feat(Rust): Add support for multipart file uploads in reqwest generators

* chore: Regen relevant samples affected by the updated multipart support
2025-11-30 23:04:29 +08:00
gonzalad
7a48bd8ef5 [typescript-angular] fix integration tests (#22463)
The expected files where not the correct ones.
2025-11-29 16:46:43 +08:00
William Cheng
1689d7b5b6 Typescript-Angular: Fix several query parameters serialization issues (#22459)
* Generate skeleton for new integration test

* Typescript-angular: Move query param deep-object test

* typescript-angular: Add query param JSON test

* Typescript-angular: Add query param form test

* Test for #20998

* typescript-angular: Reimplement query param serialisation

This notably fixes:
- JSON query param serialisation
- array serialisation with style=form and explode=true

As the class HttpParams from Angular is specially designed for the
mimetype: `application/x-www-form-urlencoded` it does not support
the range of query parameters defined by the OpenAPI specification.
To workaround this issue, this patch introduces a custom
`OpenAPIHttpParams` class which supports a wider range of query param
styles.

Note that as `HttpClient` is used afterwards, the class
`OpenApiHttpParams` has a method to convert it into a `HttpParams` from
Angular with a no-op HttpParameterCodec to avoid double serialisation of
the query parameters.

* update samples

---------

Co-authored-by: Vladimir Svoboda <vsvoboda@forkoder.eu>
2025-11-28 20:59:29 +08:00
David Gamero
08858a91e6 [typescript] migrate node-fetch to undici (#22408)
* migrate typescript generator to undici

* smaples

* missing comma

* upgrade types in encode test

* remove EOL node versions, add new LTS

* fix export issue in encode/decode

* d.js issue and commonjs module in tsconfig for esm dual support

* update samples merge master

* sync samples

* files samples
2025-11-27 16:36:19 +08:00
William Cheng
e9c842f150 fix: do not add dependency on urllib3 if not required (#22453)
* fix: do not add dependency on urllib3 if not required

* update samples

* remove import

---------

Co-authored-by: Sascha Kreutz <saschakreutz@hotmail.de>
2025-11-27 16:03:21 +08:00
Jachym Metlicka
1b557790e6 [kotlin-spring][server] Feat: Return from controllers without ResponseEntity wrapper. (#22377)
* remove "async" and "responseWrapper" from template as these are not supported by kotlin-spring generator

* try to force pipelines rerun

* force pipelines rerun

* fix mustache to keep generated code identical

* Revert "fix mustache to keep generated code identical"

This reverts commit c573b43401.

* Reapply "fix mustache to keep generated code identical"

This reverts commit 2c3b065c5c.

* Add support for 'useResponseEntity' in kotlin-spring. Consolidate with the separate flag 'declarativeInterfaceWrapResponses' as these can now be controlled both by one flag. Default to true.

* fix status annotation and add compile-test samples

* satisfy samples-up-to-date check

* add unit tests covering both reactive and non-reactive

* fix template to avoid unnecessary empty line

* fix template to avoid unnecessary empty line

* put method params (if present) on separate lines to improve readability

* put method params (if present) on separate lines to improve readability; fix double spaces, spaces before comma, incorrect spaces

* fix test

* store PATHs as accesible strings in companion objects.

* fix missing import

* fix incorrect import

* fix fallback to nested placeholders.
2025-11-26 18:00:17 +08:00
William Cheng
3d6e9d5693 better format in build.gradle (kotlin) (#22439) 2025-11-26 17:41:17 +08:00