Skip to content

Commit ad948aa

Browse files
adi-codeemilbonnek
andauthored
[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>
1 parent 047ea41 commit ad948aa

20 files changed

Lines changed: 48 additions & 48 deletions

File tree

modules/openapi-generator/src/main/resources/rust/Cargo.mustache

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,22 +66,22 @@ secrecy = "0.8.0"
6666
{{/withAWSV4Signature}}
6767
{{#reqwest}}
6868
{{^supportAsync}}
69-
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
69+
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
7070
{{#supportMiddleware}}
71-
reqwest-middleware = { version = "^0.4", features = ["json", "blocking", "multipart"] }
71+
reqwest-middleware = { version = "^0.5", features = ["json", "multipart", "query", "form"] }
7272
{{/supportMiddleware}}
7373
{{/supportAsync}}
7474
{{#supportAsync}}
7575
{{#useAsyncFileStream}}
7676
tokio = { version = "^1.46.0", features = ["fs"] }
7777
tokio-util = { version = "^0.7", features = ["codec"] }
78-
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart", "stream"] }
78+
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "stream", "query", "form"] }
7979
{{/useAsyncFileStream}}
8080
{{^useAsyncFileStream}}
81-
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart"] }
81+
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "query", "form"] }
8282
{{/useAsyncFileStream}}
8383
{{#supportMiddleware}}
84-
reqwest-middleware = { version = "^0.4", features = ["json", "multipart"] }
84+
reqwest-middleware = { version = "^0.5", features = ["json", "multipart", "query", "form"] }
8585
{{/supportMiddleware}}
8686
{{#supportTokenSource}}
8787
async-trait = "^0.1"
@@ -93,13 +93,13 @@ google-cloud-token = "^0.1"
9393
[features]
9494
default = [{{#reqwestDefaultFeatures}}"{{.}}"{{^-last}}, {{/-last}}{{/reqwestDefaultFeatures}}]
9595
native-tls = ["reqwest/native-tls"]
96-
rustls-tls = ["reqwest/rustls-tls"]
96+
rustls = ["reqwest/rustls"]
9797
{{/reqwest}}
9898
{{#reqwestTrait}}
9999
async-trait = "^0.1"
100-
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart", "stream"] }
100+
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "stream", "query", "form"] }
101101
{{#supportMiddleware}}
102-
reqwest-middleware = { version = "^0.4", features = ["json", "multipart"] }
102+
reqwest-middleware = { version = "^0.5", features = ["json", "multipart", "query", "form"] }
103103
{{/supportMiddleware}}
104104
{{#supportTokenSource}}
105105
# TODO: propose to Yoshidan to externalize this as non google related crate, so that it can easily be extended for other cloud providers.
@@ -114,7 +114,7 @@ bon = { version = "2.3", optional = true }
114114
[features]
115115
default = [{{#reqwestDefaultFeatures}}"{{.}}"{{^-last}}, {{/-last}}{{/reqwestDefaultFeatures}}]
116116
native-tls = ["reqwest/native-tls"]
117-
rustls-tls = ["reqwest/rustls-tls"]
117+
rustls = ["reqwest/rustls"]
118118
{{#mockall}}
119119
mockall = ["dep:mockall"]
120120
{{/mockall}}

samples/client/others/rust/reqwest-regression-16119/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
1212
serde_json = "^1.0"
1313
serde_repr = "^0.1"
1414
url = "^2.5"
15-
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
15+
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
1616

1717
[features]
1818
default = ["native-tls"]
1919
native-tls = ["reqwest/native-tls"]
20-
rustls-tls = ["reqwest/rustls-tls"]
20+
rustls = ["reqwest/rustls"]

samples/client/others/rust/reqwest/api-with-ref-param/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
1212
serde_json = "^1.0"
1313
serde_repr = "^0.1"
1414
url = "^2.5"
15-
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart"] }
15+
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "query", "form"] }
1616

1717
[features]
1818
default = ["native-tls"]
1919
native-tls = ["reqwest/native-tls"]
20-
rustls-tls = ["reqwest/rustls-tls"]
20+
rustls = ["reqwest/rustls"]

samples/client/others/rust/reqwest/composed-oneof/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
1212
serde_json = "^1.0"
1313
serde_repr = "^0.1"
1414
url = "^2.5"
15-
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
15+
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
1616

1717
[features]
1818
default = ["native-tls"]
1919
native-tls = ["reqwest/native-tls"]
20-
rustls-tls = ["reqwest/rustls-tls"]
20+
rustls = ["reqwest/rustls"]

samples/client/others/rust/reqwest/emptyObject/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
1212
serde_json = "^1.0"
1313
serde_repr = "^0.1"
1414
url = "^2.5"
15-
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
15+
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
1616

1717
[features]
1818
default = ["native-tls"]
1919
native-tls = ["reqwest/native-tls"]
20-
rustls-tls = ["reqwest/rustls-tls"]
20+
rustls = ["reqwest/rustls"]

samples/client/others/rust/reqwest/enum-query-params/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ serde = { version = "^1.0", features = ["derive"] }
1212
serde_json = "^1.0"
1313
serde_repr = "^0.1"
1414
url = "^2.5"
15-
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart"] }
15+
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "query", "form"] }
1616

1717
[dev-dependencies]
1818
wiremock = "0.6"
@@ -21,4 +21,4 @@ tokio = { version = "^1.46.0", features = ["macros", "rt-multi-thread"] }
2121
[features]
2222
default = ["native-tls"]
2323
native-tls = ["reqwest/native-tls"]
24-
rustls-tls = ["reqwest/rustls-tls"]
24+
rustls = ["reqwest/rustls"]

samples/client/others/rust/reqwest/oneOf-array-map/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
1212
serde_json = "^1.0"
1313
serde_repr = "^0.1"
1414
url = "^2.5"
15-
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
15+
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
1616

1717
[features]
1818
default = ["native-tls"]
1919
native-tls = ["reqwest/native-tls"]
20-
rustls-tls = ["reqwest/rustls-tls"]
20+
rustls = ["reqwest/rustls"]

samples/client/others/rust/reqwest/oneOf-reuseRef/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ serde = { version = "^1.0", features = ["derive"] }
1111
serde_json = "^1.0"
1212
serde_repr = "^0.1"
1313
url = "^2.5"
14-
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
14+
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
1515

1616
[features]
1717
default = ["native-tls"]
1818
native-tls = ["reqwest/native-tls"]
19-
rustls-tls = ["reqwest/rustls-tls"]
19+
rustls = ["reqwest/rustls"]

samples/client/others/rust/reqwest/oneOf/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ serde = { version = "^1.0", features = ["derive"] }
1212
serde_json = "^1.0"
1313
serde_repr = "^0.1"
1414
url = "^2.5"
15-
reqwest = { version = "^0.12", default-features = false, features = ["json", "blocking", "multipart"] }
15+
reqwest = { version = "^0.13", default-features = false, features = ["json", "blocking", "multipart", "query", "form"] }
1616

1717
[features]
1818
default = ["native-tls"]
1919
native-tls = ["reqwest/native-tls"]
20-
rustls-tls = ["reqwest/rustls-tls"]
20+
rustls = ["reqwest/rustls"]

samples/client/petstore/rust/reqwest-trait/petstore/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ serde_repr = "^0.1"
1414
url = "^2.5"
1515
uuid = { version = "^1.8", features = ["serde", "v4"] }
1616
async-trait = "^0.1"
17-
reqwest = { version = "^0.12", default-features = false, features = ["json", "multipart", "stream"] }
17+
reqwest = { version = "^0.13", default-features = false, features = ["json", "multipart", "stream", "query", "form"] }
1818
mockall = { version = "^0.13", optional = true}
1919
[features]
2020
default = ["native-tls"]
2121
native-tls = ["reqwest/native-tls"]
22-
rustls-tls = ["reqwest/rustls-tls"]
22+
rustls = ["reqwest/rustls"]
2323
mockall = ["dep:mockall"]

0 commit comments

Comments
 (0)