Commit Graph

234 Commits

Author SHA1 Message Date
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
William Cheng
9adfe986a3 Prepare v7.20.0 release (#22738)
* Revert "v7.19.0 release (#22732)"

This reverts commit ff400e9a31.

* prepare v7.20.0 release

* update samples

* update doc
2026-01-20 03:13:58 +08:00
Devon
ae42568b26 [Rust] Enum Query Parameter Serialization Fixes (#22683)
* [Rust] Enum Query Parameter Serialization Fixes

Adds tests to ensure this won't regress again. Also fixes some other compile errors with Box<> and file uploads.

* Remove duplicate query param integration tests from petstore samples

* re-gen samples

* fix enum boxing tests

* stream files

* samples

* doc generator fix & snapshot

* doc generation fixes, update samples

* another attempt to fix the doc generator

* improve doc generation - don't try link to internal models, and fixing links missing in some scenarios

the rust doc generator will be the death of me

* also fix hyper

* applying same fix to hyper

* snapshot fixes
2026-01-13 11:18:56 +08:00
William Cheng
23eff6672f Prepare v7.19.0 snapshot (#22569)
* Revert "7.18.0 release (#22567)"

This reverts commit 51228436e0.

* prepare 7.19.0 snapshot

* update samples

* update doc

* fix date
2025-12-22 19:25:23 +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
Levi Lutz
a52e902cb5 [RUST] Fix #22356 / Introduce useSerdePathToError option to improve JSON error messages (#22357)
* Add CLI option

* Add dep to generated Cargo.toml

* Add new `Error::SerdePathToError` error type

* Add `serde_path_to_error` invocation to API layer

* Add sample for serde-path-to-error

* Add arg & docstring to cliOptions as well

* Fix sample
2025-11-16 22:13:55 +08:00
William Cheng
f9d2b8b579 Prepare v7.18.0 release (#22250)
* Revert "v7.17.0 release (#22248)"

This reverts commit 0120486e62.

* prepare v7.18.0 release

* update samples

* update doc
2025-10-30 01:25:35 +08:00
Bradford Hovinen
40b9d69d5a Support deprecated API endpoints in reqwest-based Rust clients (#22131)
Previously, if an API endpoint was marked deprecated, this fact was not
reflected in the generated Rust clients using the reqwest library. We
want to know exactly when our client code is using a deprecated endpoint,
so marking the corresponding functions with the `#[deprecatd]` attribute
would be very helpful. Uses of the endpoint would then be picked up by
linters so that we can react.

This adds a line to the template which marks functions generated from
deprecated endpoints with the `#[deprecated]` attribute.

This does not touch any of the other client generators for Rust or any
other language, since they are out of scope for our needs.

Co-authored-by: Bradford Hovinen <bho@qwello.eu>
2025-10-16 19:41:28 +08:00
William Cheng
885ea07b17 Prepare 7.17.0 (#22040)
* Revert "v7.16.0 release"

This reverts commit 31299af0fc.

* prepare 7.17.0-SNAPSHOT

* update doc, samples
2025-09-28 17:25:13 +08:00
Jean-Marc Le Roux
6b692739e8 [Rust] Add support for native-tls and rustls-tls Cargo features for the reqwest library (#21925)
* feat(rust): add the native-tls (default) and rustls Cargo features for `reqwest`

* refactor(rust): rename the `rustls` Cargo feature to follow the ecosystem naming convention
2025-09-14 17:22:11 +08:00
William Cheng
90d6af2bab Refactor Rust github workflow for clients and servers (#21851)
* add workflow to test rust clients

* update to use localhost

* rename rust server workflow
2025-09-01 11:43:25 +08:00
Thomas Ville
9c1b680fdf [rust] enable useAsyncFileStream only for files in the body (#21839)
Co-authored-by: Thomas Ville <thomas.ville@aerys.in>
2025-08-29 21:02:45 +08:00
William Cheng
20be2decde Prepare v7.16.0 release (#21794)
* Revert "v7.15.0 release (#21792)"

This reverts commit 2c816f89cb.

* prepare 7.15.0 release

* update samples
2025-08-22 19:17:23 +08:00
andershausding
2569321b82 feat: add async file stream support for reqwest client (#21771) 2025-08-22 15:02:55 +08:00
andershausding
1860efade2 [Rust] fix: add location prefix to prevent parameter name collisions (#21611)
* [Rust] fix: add location prefix to prevent parameter name collisions when escaping parameter names

* chore: update samples

* [Rust] fix: do not use locationSuffix if useSingleRequestParameter feature is enabled
2025-08-12 20:54:09 +08:00
Daniel García
31060931b6 Add reqwest-trait crate to workspace and rename it (#21674)
* Add reqwest-trait crate to workspace and rename it

* Fix missing ^isArray condition
2025-08-04 00:46:44 +08:00
Daniel García
98b315c137 Qualify rust trait template comments (#21527) 2025-07-08 10:26:22 +08:00
William Cheng
046be5dba1 Prepare 7.15.0 (#21445)
* Revert "v7.14.0 release (#21443)"

This reverts commit 5eb083e5ce.

* prepare v7.15.0 snapshot

* update samples

* update readme

* update doc
2025-06-25 21:34:58 +08:00
William Cheng
1b57d4b1e6 Better handling of metadata in allOf (#21342)
* better handling of metadata in allof

* update samples
2025-05-30 20:37:53 +08:00
William Cheng
0bfce24071 Add model name mapping option to rust generators (#21282)
* add model name mapping option to rust generators

* update package name

* update samples
2025-05-15 13:29:37 +08:00
Amin Ya
429da9860b [rust] support model/maps as deep/explode params (#21262)
* [rust] support model/maps as deep/explode params

* [rust] add tests for rust deep objects

* [rust] detect normal non deep objects

* [rust] distinguish model and object

* [rust] fix objects as params for hyper
2025-05-14 14:44:05 +08:00
Ross Sullivan
652d4ed95c Remove duplicate oneOf schemas during pre-processing (#21174)
* fix: Remove duplicate oneOf schemas during pre-processing

* chore: Updated samples

* fix: Fixed regression with oneOf+discriminator

* fix: Fixed possible null pointer during schema preprocessing

* refactor: Moved oneOf deduplication to OpenAPINormalizer
2025-05-04 23:30:42 +08:00
William Cheng
dbf720c093 Prepare 7.14.0 release (#21159)
* Revert "v7.13.0 release (#21157)"

This reverts commit 4b805ff6b7.

* prepare v7.14.0 release

* update samples
2025-04-27 22:04:03 +08:00
Ross Sullivan
35ba0414fb [rust] Fix for allOf multi model with only metadata fields (#20892)
* Fix for allof multi model with only metadata fields

* Update samples

* fixed compiler errors in java 17 and lower

* refactored isMetadataOnlySchema to ModelUtils.java
2025-04-26 23:44:56 +08:00
Ross Sullivan
1c62f839c5 Fixed Rust model files not matching module imports causing compiler errors (#21134)
* fix(rust): Fixed Rust model files not matching module imports causing compiler errors

* chore(rust): Update samples with a duplicate model test

* update samples

---------

Co-authored-by: Ross Sullivan <rosssullivan101@gmail.com>
2025-04-26 22:03:28 +08:00
Ross Sullivan
caf22add95 [rust] Fixed nullable byte arrays (#20720)
* [rust] fixed nullable byte arrays

* Updated tests and samples

* updated type test

* Added double option support

* updated samples
2025-04-23 16:13:53 +08:00
Aran Donohue
b2abf36af6 feat: [Rust][client] Add option to use rustls for reqwest instead of openssl (#21001)
* feat: [Rust][client] Add option to use rustls for reqwest instead of openssl

* generated changes

Summary:

  ./bin/generate-samples.sh ./bin/configs/*.yaml || exit
  ./bin/utils/export_docs_generators.sh || exit
2025-04-07 00:42:23 +08:00
Ross Sullivan
85ab65c4ca Fixed allOf with only one model (#20716) 2025-03-02 23:33:00 +08:00
William Cheng
a79aad8420 Prepare 7.13.0 (#20758)
* Revert "v7.12.0 release"

This reverts commit 073723cb4d.

* set version to v7.13.0-SNAPSHOT

* update samples

* update doc
2025-02-28 13:48:36 +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
Ross Sullivan
28c7b9b956 [rust] fixed compiler errors for decimal types (#20708) 2025-02-22 22:58:26 +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
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
Ross Sullivan
79f70dcc8b feat: [rust] Dynamically add uuid crate only if used (#20619) 2025-02-10 11:04:09 +08:00
Ross Sullivan
cba193666e feat: Added doc comments to Rust reqwest-trait template (#20591) 2025-02-05 14:43:51 +08:00
Ross Sullivan
5ecde555ab chore: Bumped Rust reqwest-middleware crate to 0.4 (#20577) 2025-02-03 01:18:36 +08:00
William Cheng
1fa07bf46c Prepare 7.12.0 (#20512)
* Revert "v7.11.0 release (#20508)"

This reverts commit a7240eeefe.

* prepare 7.12.0 snapshot version

* update samples

* update readme
2025-01-21 00:10:09 +08:00
Marcel Märtens
78ea8afa84 [Rust] harden against name collisions while generate cleaner rust code, fix #20337 (#20396)
* prevent all name clashes by using a prefix for all parameters, this way they CANNOT clash with anything locally, as our hardcoded stuff in mustache files doesnt start with "p_" ,
when using the grouped option, we just use the params directly and dont unpack the variables at all, prevending furthur name clashes.

* get rid of "local_var" prefix, now that we no longer clash with paramater names

* fix a typo and remove the r# generated to the paramName when we create the identifier

* java code formatting and added a fake-endpoint parameter test

* update rust samples
2025-01-13 17:43:13 +08:00
William Cheng
09530b4781 Set removeEnumValuePrefix to false by default (#20452)
* set removeEnumValuePrefix to false by default

* update tests
2025-01-13 16:25:10 +08:00
Ross
47891245e9 [Rust] Fixed rust keyword params in reqwest-trait library (#20333)
* Fixed rust keywords in reqwest-trait lib

* Update tests and samples
2024-12-16 18:58:47 +08:00
William Cheng
2f03c70403 [rust] Add tests for path parameters (#20325)
* add tests for path parameter in rust client

* add tests and update samples
2024-12-14 13:50:11 +08:00
Thomas Ville
34bd02109e [rust][reqwest] support binary type for download (#20031)
* [rust][reqwest] support binary type for upload and download

* [rust][reqwest] support binary download in supportMultipleResponses contexts

* [rust][reqwest] support binary responses that don't have any return type
2024-11-29 17:07:30 +08:00
William Cheng
654f62ce3c Prepare 7.11.0 (#20130)
* Revert "prepare 7.10.0 release (#20128)"

This reverts commit 12dfe8fe74.

* update to 7.11.0-SNAPSHOT, update samples

* update docs
2024-11-18 20:15:29 +08:00
Ross
4a21dea47f Added support for a trait based reqwest Rust client (#19788)
* Added Rust Reqwest trait based client

* Fixed Cargo imports for reqwest trait template

* Added support for mockall to Rust reqwest trait library

* Added MockApiClient when mockall and topLevelClient are enabled

* Added missing flags to Rust generator documentation

* feat: add support for single argument and bon builder

Adds support for single argument and bon building for the new
reqwest-trait generator

* Rebuilt rust samples

---------

Co-authored-by: Troy Benson <troybensonsa@gmail.com>
2024-10-30 14:21:11 +08:00
Linh Tran Tuan
52610e026e [BugFix] [Rust*] model-name-prefix causing invalid generated code (#19922)
* [BugFix] [Rust*] model-name-prefix causing invalid generated code]

* Update

* Fix

* Update

* Update
2024-10-21 18:10:16 +08:00
William Cheng
e2c458b9ea Prepare 7.10.0 (#19809)
* Revert "prepare 7.9.0 release (#19808)"

This reverts commit 4145000dfe.

* prepare 7.10.0 snapshot

* update doc

* update samples
2024-10-08 11:21:54 +08:00
William Cheng
d7ac1e4337 [OpenAPI 3.1] Avoid NPE when handling prefixItems (#19735)
* avoid npe when handling prefixItems in 3.1 spec

* update samples
2024-10-01 17:36:11 +08:00
nvivot
8ef3118005 [rust][client][auth] token source option (#19647)
* feat: add token source support for rust async client

* chore: fix + regen samples

* chore: doc gen

* chore: missing generated sample files
2024-10-01 15:05:39 +08:00
Wiktor Kwapisiewicz
5732e2758f rust: Implement Display instead of ToString for enums (#19611)
Rust docs for `ToString` explicitly recommend implementing `Display`:

> This trait is automatically implemented for any type which implements the Display trait. As such, ToString shouldn’t be implemented directly: Display should be implemented instead, and you get the ToString implementation for free.

See: https://doc.rust-lang.org/std/string/trait.ToString.html
See: https://github.com/Nitrokey/nethsm-sdk-rs/pull/33

Signed-off-by: Wiktor Kwapisiewicz <wiktor@metacode.biz>
2024-09-24 21:07:12 +08:00
William Cheng
91da2fd240 Prepare 7.9.0 snapshot (#19386)
* Revert "v7.8.0 release (#19385)"

This reverts commit 6bdc452f92.

* update samples for v7.9.0-snapshot
2024-08-19 16:14:51 +08:00