GraphqlClient

Struct GraphqlClient 

Source
pub struct GraphqlClient<'a> { /* private fields */ }
Expand description

A client for executing GraphQL operations (queries and mutations).

This client handles constructing the HTTP request, sending it to the specified GraphQL endpoint, and processing the response.

Implementations§

Source§

impl<'a> GraphqlClient<'a>

Source

pub fn new( base_url: &str, user_agent: &'a str, payload_compression: Option<GraphQLPayloadCompression>, ) -> Self

Creates a new GraphqlClient instance.

§Arguments
  • base_url - The base URL of the GraphQL API endpoint (e.g., “https://api.example.com/graphql”).
  • user_agent - The User-Agent string to identify this client.
  • payload_compression - An optional compression strategy. Defaults to GraphQLPayloadCompression::Zstd if None.
§Panics

Panics if the provided base_url is invalid.

Source

pub async fn execute_graphql_request<T: DeserializeOwned>( &self, query: &str, variables: &HashMap<String, Value>, identity_public_key: &[u8], session_token: Option<&str>, ) -> Result<T>

Executes a GraphQL query or mutation.

This method builds the request payload, applies compression if configured, sends the request, handles potential response compression, and deserializes the data field of the response into the specified type T.

§Arguments
  • query - The GraphQL query or mutation string. This should be a raw string literal (e.g., r#"query { ... }"#) containing the full text of the operation. This client does not use pre-generated query types.
  • variables - A map of variables to be included in the request.
  • identity_public_key - The public key identifying the client/user.
  • session_token - An optional session token for authentication.
§Type Parameters
  • T - The type to deserialize the data field of the GraphQL response into. It must implement serde::de::DeserializeOwned.
§Returns

Returns a Result containing the deserialized data T on success, or an eyre::Report detailing the error on failure (e.g., network issues, non-200 status code, deserialization errors, missing data field).

Trait Implementations§

Source§

impl<'a> Clone for GraphqlClient<'a>

Source§

fn clone(&self) -> GraphqlClient<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for GraphqlClient<'a>

§

impl<'a> !RefUnwindSafe for GraphqlClient<'a>

§

impl<'a> Send for GraphqlClient<'a>

§

impl<'a> Sync for GraphqlClient<'a>

§

impl<'a> Unpin for GraphqlClient<'a>

§

impl<'a> !UnwindSafe for GraphqlClient<'a>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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<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
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T