Skip to main content

CloudRequestBuilder

Struct CloudRequestBuilder 

Source
pub struct CloudRequestBuilder { /* private fields */ }
Expand description

A builder for a single request issued through a CloudClient.

Created by CloudClient::request and the per-verb shortcuts such as CloudClient::get. Configure the request with the builder methods, then call send to sign and dispatch it.

Implementations§

Source§

impl CloudRequestBuilder

Source

pub fn header<K, V>(self, key: K, value: V) -> CloudRequestBuilder

Add a Header to this Request.

Source

pub fn headers(self, headers: HeaderMap) -> CloudRequestBuilder

Add a set of Headers to the existing ones on this Request.

The headers will be merged in to any already set.

Source

pub fn body<T: Into<Body>>(self, body: T) -> CloudRequestBuilder

Set the request body.

Source

pub fn timeout(self, timeout: Duration) -> CloudRequestBuilder

Enables a request timeout.

The timeout is applied from when the request starts connecting until the response body has finished. It affects only this request and overrides the timeout configured using ClientBuilder::timeout().

Source

pub fn query<T: Serialize + ?Sized>(self, query: &T) -> CloudRequestBuilder

Modify the query string of the URL.

Modifies the URL of this request, adding the parameters provided. This method appends and does not overwrite. This means that it can be called multiple times and that existing query parameters are not overwritten if the same key is used. The key will simply show up twice in the query string. Calling .query(&[("foo", "a"), ("foo", "b")]) gives "foo=a&foo=b".

§Note

This method does not support serializing a single key-value pair. Instead of using .query(("key", "val")), use a sequence, such as .query(&[("key", "val")]). It’s also possible to serialize structs and maps into a key-value pair.

§Errors

This method will fail if the object you provide cannot be serialized into a query string.

Source

pub fn json<T: Serialize + ?Sized>(self, json: &T) -> CloudRequestBuilder

Send a JSON body.

§Errors

Serialization can fail if T’s implementation of Serialize decides to fail, or if T contains a map with non-string keys.

Source

pub async fn send(self) -> Result<Response>

Sign and send the request, returning the reqwest::Response.

The request is first passed to the client’s RequestSigner, which attaches the provider-specific authentication (e.g. AWS SigV4 headers or an Authorization: Bearer header), refreshing any cached credential as needed. The signed request is then dispatched through the client’s HttpService, retrying transient failures per the client’s RetryConfig and mapping a non-success status to the matching Error.

When the recording feature is enabled and a recording directory has been configured via CloudClient::set_recording_dir, the request and response are instead captured to disk (with sensitive headers redacted) in a single round-trip — this capture path does not retry or map status codes to errors, so use the default build for production traffic.

§Errors

Returns an Error if signing fails, if the request cannot be built, or if the underlying HTTP transport returns an error. A non-success HTTP status code is not itself an error; inspect reqwest::Response::status on the returned response.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more