Commit Graph

7997 Commits

Author SHA1 Message Date
Maksim Kosolapov 09df01501a [kotlin][client] Explode query param properly (#20714) 2025-02-26 15:52:03 +08:00
Daniel Schreiber 5f92de4785 [typescript-angular] refactor service classes for reduced bundle sizes. (#20681)
This reduces bundle sizes of ESM bundles on the order of 20%.
2025-02-25 13:07:14 +01:00
moznion 9537a7fb46 [typescript] Prevent generating invalid enum code due to empty variable names (#20699)
* [typescript] Prevent generating invalid enum code due to empty variable names

After sanitizing all characters (e.g. multibyte characters), the enum variable name may become an empty string.
Since an empty string would cause a syntax error, this patch pads the pseudo variable name (`STRING`) to avoid that issue.

For example, given the following OpenAPI definition:

```yaml
openapi: "3.0.0"
info:
  title: Sample project
  version: '1.0'
  description: 'Sample API Check "API Key" '
  license:
    name: Apache 2.0
    url: 'https://www.apache.org/licenses/LICENSE-2.0'
paths: {}
components:
  schemas:
    Greeting:
      type: string
      enum:
        - 'こんにちは'
        - '你好'
        - '안녕하세요'
```

The current logic generates the following code for Greeting:

```typescript
export enum Greeting {
     = 'こんにちは',
    2 = '你好',
    3 = '안녕하세요'
}
```

This code is invalid. With this patch, the generated code becomes:

```typescript
export enum Greeting {
    STRING = 'こんにちは',
    STRING2 = '你好',
    STRING3 = '안녕하세요'
}
```

Signed-off-by: moznion <moznion@mail.moznion.net>

* Remove unnecessary imports

Signed-off-by: moznion <moznion@mail.moznion.net>

* Use new sanitizer for TypeScript symbol which takes wider variety characters for enum var name

Signed-off-by: moznion <moznion@mail.moznion.net>

---------

Signed-off-by: moznion <moznion@mail.moznion.net>
2025-02-25 12:58:27 +01:00
Gus Costa a56d032edf docs(nodejs-express-server): fix default port number in README (#20706)
Update README to correctly show 8080 as the default port instead of 3000.
This matches the actual server configuration in config.js where the
server listens on port 8080 by default.
2025-02-23 20:51:45 +08:00
Ross Sullivan 670e9d7099 [rust] Fixed discriminator causing duplicate enum variants (#20711)
* Fixed discriminator

* Added testcase and updated samples
2025-02-23 17:50:04 +08:00
Ruslan Khasanshin 79145dc633 [kotlin-spring] Adds 'suspend' modifier for reactive List endpoint with useFlowForArrayReturnType = false (#16130) (#20710) 2025-02-23 17:35:08 +08:00
Gus Costa 86a293e0b6 fix(nodejs-express-server): update express-openapi-validator to v4 (#20704)
Update express-openapi-validator from v3 to v4 to support Node.js versions >14.
This includes:
- Upgrade express-openapi-validator dependency in package.json
- Modify server startup code to accommodate v4 API changes
- Update controller implementation to handle breaking changes

The changes ensure compatibility with modern Node.js versions while maintaining
the generator's functionality.
2025-02-23 17:27:33 +08:00
Gus Costa f83b049fe6 fix(nodejs-express-server): remove unused axios dependency (#20707)
Remove axios from package.mustache as it's not used in the starter build.
This eliminates potential security vulnerabilities (ReDos & SSRF) from
the dependency tree without affecting functionality.
2025-02-22 23:10:46 +08:00
Ross Sullivan 28c7b9b956 [rust] fixed compiler errors for decimal types (#20708) 2025-02-22 22:58:26 +08:00
Sylvain Joubert 0ff8c46595 [Python] Fix mustache tag syntax in github worklow (#20701) 2025-02-21 17:43:17 +08:00
Ron Reynolds 13111077d4 Java client codegen cleanup (#20691)
* made Configuration.defaultApiClient volatile so that if it's changed the new value is immediately visible to all other threads

* made no-arg api ctor use Configuration.getDefaultApiClient() instead of creating new ApiClient every time

* replaced all use of URLEncoder.encode with ApiClient.urlEncode; just code cleanup; no functional changes

* disabled AbstractJavaCodegenTest.testGeneratedExampleValues as it fails, possibly due to timezone (Locale.ROOT) of local system

* replaced thread-unsafe SimpleDateFormat with DateTimeFormatter and re-enabled unit-test

* removed unused import

* ran the generate-sample scripts and generated a HUGE number of changes!

* some code cleanup and adding booleans to processOpts to remove lots of duplicate FOO.equals(getLibrary()) checks; also using isLibrary() wherever possible

* added missing import of Configuration to api.mustache (and, thus, all native samples)

* added missing import for ApiClient to anyof and oneof model mustaches

* rolled back formatting of cliOptions block (too many changes for a simple PR)

* use toLowerCase with locale

* reverted supportedLibraries reordering and format changes to reduce diff noise

* updated comment

* rolled back Slf4j change due to failing arch-unit test; also rolled back serialization-lib setting code due to unit-test failure (still a mystery)

* moved lib* booleans AFTER super.processOpts() the library can be changed (as shown by unit-test)
2025-02-20 18:16:40 +08:00
Christian Munier 73079c2ef6 Fix #20692 [typescript-angular] Support enumDescription / x-enum-descriptions (#20693)
* #20692 [typescript-angular] Added x-enum-descriptions to "composed-schemas" example.

* #20692 [typescript-angular] Respect x-enum-descriptions / enumDescription in modelEnum mustache template.

* #20692 [typescript-angular] Regenerated samples.
2025-02-20 11:04:00 +01:00
Jonathan Martens 890c37fd77 fix: display of markdown in notes section (#20534)
* fix: display of markdown in notes section

* update samples

* skip blank lines

---------

Co-authored-by: William Cheng <wing328hk@gmail.com>
2025-02-19 17:15:29 +08:00
Dragos Vingarzan c2884b7b1a [BUG][Go-server] attempt to fix the controller-api mustache template for a nullable bodyParam (#20478)
* go-server: attempt  to fix the controller-api mustache template for a nullable bodyParam

* added to petstore an example to trigger the issue which this PR fixes
2025-02-19 17:09:32 +08:00
Alex cd7cdb1e24 Add option to generate a fully sealed model in the JavaSpring generator (#20503)
* Generated sealed interfaces for oneOf

* Add generated data

* Add also  modifier

* Allow sealed for everything

* Fully seal model

* Disable html escaping

* Update modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java

Co-authored-by: martin-mfg <2026226+martin-mfg@users.noreply.github.com>

* Update docs

* Check all oneOf scenarios

* Fix failed scenario

* Fix comments

* Remove unused import

* Adapt pom.xml also

* Add comment and remove unused function

---------

Co-authored-by: martin-mfg <2026226+martin-mfg@users.noreply.github.com>
2025-02-19 15:15:09 +08:00
Victoria Casasampere Fernandez d5866feb2d [Rust-Axum] Implement support for Basic and Bearer auth in Claims (#20584)
* Implement a custom error handler for unhandled or generic endpoint errors

* Pass in method, host and cookies to error handler

* Update axum to 0.8

* Make API methods take references instead of ownership

* Rebase error handler

* Rebase with updated error handler

* Update deps

* Fix capture group syntax

* Rebase rust-axum-error-handling

* Update docs

* Multipart is also part of the axum update

* Update samples

* Update docs
2025-02-19 14:48:28 +08:00
Ron Reynolds eb668b6a76 reuse Configuration.defaultApiClientin no-arg Api ctors and make ref volatile (fixes issue #20633) (#20635)
* made Configuration.defaultApiClient volatile so that if it's changed the new value is immediately visible to all other threads

* made no-arg api ctor use Configuration.getDefaultApiClient() instead of creating new ApiClient every time

* replaced all use of URLEncoder.encode with ApiClient.urlEncode; just code cleanup; no functional changes

* disabled AbstractJavaCodegenTest.testGeneratedExampleValues as it fails, possibly due to timezone (Locale.ROOT) of local system

* replaced thread-unsafe SimpleDateFormat with DateTimeFormatter and re-enabled unit-test

* removed unused import

* ran the generate-sample scripts and generated a HUGE number of changes!

* added missing import of Configuration to api.mustache (and, thus, all native samples)

* added missing import for ApiClient to anyof and oneof model mustaches
2025-02-19 14:47:55 +08:00
Yuji Hanamura c349270c7a [Ruby] Fix ruby client generator to generate setter methods with not null validation (#20672)
* fix: Fix ruby client generator to generate setter methods with not null validation

Not null validation was missing for required and non-nullable properties when
no other validation was present.

* fix: Fix an issue where the initialize method did not accept attributes defined in its parent class
2025-02-19 14:46:44 +08:00
lucy66hw 4883de51c1 enum zero index is UNSPECIFIED suffix (#20473)
Co-authored-by: xil <xil@uber.com>
2025-02-19 14:30:53 +08:00
Ross Sullivan 2722fdcdc8 [RUST] chore: Clean up Rust reqwest and model templates (#20674)
* Cleaned up rust-reqwest-trait api template

* Cleaned up rust-reqwest api template

* Cleaned up rust model template
2025-02-18 16:58:12 +08:00
Joost Sijm 5687edcf02 [python] Encode list query parameters for python pydantic v1 client (#20614)
* Fix url escape quote in python pydantic v1 client

* Fix sample
2025-02-18 16:46:14 +08:00
Gijs Blanken 65df3c22b9 Rewrite the PHP Laravel generator (#20526)
* remove legacy laravel generator

* initial setup of my vision for the laravel generator

* update the php laravel samples

* update php laravel docs

* moved api validation into controller and handle edge cases presented by sample generation

* updated samples

* added php-laravel to github workflow php8 and removed php7 workflow as it only contained old laravel

* preemptive work to support union types as soon as php serde supports them

* updated samples

* update templates in accordance to samples output

* fix pipelines and update samples

* correct serde version

* fixed phpunit execution and updated samples

* added named routes

* remove

* readd samples

---------

Co-authored-by: gijs.blanken@futureof.finance <gijs.blanken@finly.nl>
Co-authored-by: William Cheng <wing328hk@gmail.com>
2025-02-17 21:50:13 +08:00
Karsten Leonhardt c5863629c0 Bugfix #17149: Asciidoc generator sets not defined example values wrongly to the string value "null" instead of the expected not set value (#20670)
Co-authored-by: Karsten Leonhardt <karsten.leonhardt@commerzbank.com>
2025-02-17 21:18:37 +08:00
Carlos Chacin a6280d9b58 [java][client] fix: Add static modifier to inner class in Java when useSingleRequestParameter=true (#20590)
* fix: Add static modifier to inner class

* Apply suggestions from code review

Co-authored-by: martin-mfg <2026226+martin-mfg@users.noreply.github.com>

* fix: Remove unintended whitespace

* fix: Add default=false for useSingleRequestParameter

---------

Co-authored-by: martin-mfg <2026226+martin-mfg@users.noreply.github.com>
2025-02-17 20:02:01 +08:00
Ross Sullivan 4ba87ae0e7 [rust] Added support for text/plain to reqwest clients (#20643)
* [rust] Added support for text/plain to reqwest-trait client

* Updated samples

* [rust] Added support for text/plain to reqwest client

* Updated samples

* cleanup

* reduced compiler warnings

* fixed text/plain content with charset

* Only deserialize text/plain if the API produces it
2025-02-17 20:00:43 +08:00
Maxime Vincent 515c8827b2 Ruby fix typhoeus api client multiple call with file return type (#20615)
* [Ruby] fix Typhoeus api client multiple call with file return type

* update samples
2025-02-17 19:58:53 +08:00
Trent Nadeau c5fb60b5f2 [Rust-Axum] Fix rustfmt error due to ordering (#20653) 2025-02-17 19:55:20 +08:00
mohamuni 07b5c5fc70 Handle query param encoding issues in .net9 (#20651) 2025-02-17 19:30:56 +08:00
João Brilhante 8167aa1852 [java][feign] Fix model combining properties and additional properties (#19713) 2025-02-15 02:16:46 +08:00
João Brilhante c3c2e7aeca [java][webclient] Fix model combining properties and additional properties (#19711) 2025-02-15 00:15:22 +08:00
João Brilhante a5c9c6d531 [java][resttemplate] Fix model combining properties and additional properties (#19706) 2025-02-15 00:13:13 +08:00
William Cheng dd67423c8c update samples (#20647) 2025-02-12 17:57:18 +08:00
zaenk 3eddc9af85 [JavaSpring, kotlin-spring] attach sources when maven and interfaceOnly=true is used (#20640)
* [JavaSpring] attach sources when using maven and interfaceOnly=true

Closes #15659

* [kotlin-spring] attach sources when using maven and interfaceOnly=true

Closes #15659
2025-02-12 17:41:14 +08:00
Ross Sullivan 9ed15a1c97 [Rust] Fixed Rust default isAnyType causing compiler issues. (#20631)
* Fixed Rust default `isAnyType` causing compiler issues.

* Added tests for Rust isAnyType's

* Fixed thread_test.rs
2025-02-11 12:55:57 +08:00
Elric Milon 21bf477da3 [Rust] Bump axum and axum-extra (#20548)
* Bump axum and axum-extra to latest version.

 - This bump requires fixing path parameters due to matchit transitive dependency
changes (See https://github.com/tokio-rs/axum/pull/2645).

 - The `Host` extractor has been moved from `axum` to `axum-extra`.
 - Axum now ships multipart extractor support, switch to that.

* Update rust-axum samples
2025-02-10 22:01:15 +08:00
Michael Faille aeb7caf9b1 Fix: Resolve Dart 3.5+ and json_serializable 6.9.0+ compatibility issues in generated dart-dio clients (#20460)
This commit fixes compatibility problems between the generated dart-dio code, json_serializable 6.9.0+, and Dart SDK 3.5 or later.

Changes:

- Updated `pubspec.mustache`:
    - Set the minimum SDK constraint for the generated package to `>=3.5.0 <4.0.0`, reflecting the language version used in the generated code.
    - Bump `json_annotation` dependency to `^4.9.0`.
    - Bump `json_serializable` dependency to `^6.9.0`.

These changes ensure that the generated code:

- Is compatible with `json_serializable` 6.9.0+ and Dart SDK 3.5+.
- Avoids Dart 3.5+ specific syntax that causes errors on older SDKs.
- Maintains existing functionality and type safety.

Resolves: #16117, #14863
2025-02-10 19:39:16 +08:00
Andriy Slobodyanyk cdfa7fee77 Using Optional.ofNullable() at the fluent setters to prevent NPE (#20406)
* * Uses Optional.ofNullable() at the fluent setters to prevent NPE
* Fixes issue #17538

* updates samples
2025-02-10 18:23:01 +08:00
Ross Sullivan 79f70dcc8b feat: [rust] Dynamically add uuid crate only if used (#20619) 2025-02-10 11:04:09 +08:00
Zemke c2c161eb26 format date in codegen (#20516) 2025-02-10 00:11:01 +08:00
develop-gby af6be6adee Solution.mustache file modified (csharp generator) (#20621) 2025-02-09 23:13:07 +08:00
Dominik Broj 6f19741927 update jackson-threeten to 2.18.2 (#20530)
* update jackson-threeten to 2.18.2

* update threeten versions in test templates

* update to jackson 2.18.2

* bump jacoco to improve compat with newer java versions
2025-02-09 22:39:58 +08:00
William Cheng 61262e939a [csharp] Fixed discriminator (#20624)
* fixed discriminator

* build samples

* minor refactors

* build samples

* replaced boolean with protected method

---------

Co-authored-by: devhl <shawnkanyer@gmail.com>
2025-02-09 22:32:17 +08:00
Philip Standt 97c805f0e0 [php][php-nextgen] enumUnknownDefaultCase true now return the correct value for unknown values (#20594) 2025-02-09 22:10:47 +08:00
Blake Lassiter 53f7e471c4 unity error message and code cleanup (#20595) 2025-02-09 21:56:00 +08:00
Blake Lassiter 055605b075 SortModelPropertiesByRequiredFlag - simplified comparison to order boolean false first (#20602) 2025-02-09 21:55:41 +08:00
Ross Sullivan e1130c343a Added HTTP method+path to JavaDocs in kotlin clients (#20618)
* feat: Added HTTP method+path to JavaDocs in kotlin OkHTTP client

* feat: Added HTTP method+path to JavaDocs in kotlin Ktor client

* feat: Added HTTP method+path to JavaDocs in kotlin retrofit2 client

* feat: Added HTTP method+path to JavaDocs in kotlin vertex client

* feat: Added HTTP method+path to JavaDocs in kotlin volley client
2025-02-09 21:55:23 +08:00
Victoria Casasampere Fernandez adbbe68d4d [Rust-Axum][Breaking Change] Implement a customizable error handler (#20463)
* Implement a custom error handler for unhandled or generic endpoint errors

* Pass in method, host and cookies to error handler

* Update axum to 0.8

* Make API methods take references instead of ownership

* Multipart is also part of the axum update

* Prevent replacing path names with the same name as a dynamic path parameter

* Use status code name instead of number

* Rollback axum update

* Forgot paths
2025-02-09 21:54:01 +08:00
martin-mfg ba0456aa91 remove error message (#20623) 2025-02-09 21:52:51 +08:00
devhl-labs 01fa58a763 [csharp] Replaced property from allOf (#20578)
* replaced inherited property

* removed a comment
2025-02-09 21:43:50 +08:00
Dimitar Tomov c74dfa3b3e [kotlin-client][jvm-spring-restclient] Extract data from PartConfig for multipart/form-data requests (#20598) 2025-02-06 07:43:59 +00:00