[go: up one dir, main page]

cynic::http

Trait SurfExt

Source
pub trait SurfExt {
    // Required method
    fn run_graphql<ResponseData, Vars>(
        self,
        operation: Operation<ResponseData, Vars>,
    ) -> Pin<Box<dyn Future<Output = Result<GraphQlResponse<ResponseData>, Error>> + Send + 'static>>
       where Vars: Serialize,
             ResponseData: DeserializeOwned + 'static;
}
Available on crate feature surf only.
Expand description

An extension trait for surf::RequestBuilder.

use cynic::{http::SurfExt, QueryBuilder};

let operation = FilmDirectorQuery::build(());

let response = surf::post("https://swapi-graphql.netlify.app/.netlify/functions/index")
    .run_graphql(operation)
    .await
    .unwrap();

println!(
    "The director is {}",
    response.data
        .and_then(|d| d.film)
        .and_then(|f| f.director)
        .unwrap()
);

Required Methods§

Source

fn run_graphql<ResponseData, Vars>( self, operation: Operation<ResponseData, Vars>, ) -> Pin<Box<dyn Future<Output = Result<GraphQlResponse<ResponseData>, Error>> + Send + 'static>>
where Vars: Serialize, ResponseData: DeserializeOwned + 'static,

Runs a GraphQL query with the parameters in RequestBuilder, deserializes the response and returns the result.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl SurfExt for RequestBuilder

Source§

fn run_graphql<ResponseData, Vars>( self, operation: Operation<ResponseData, Vars>, ) -> Pin<Box<dyn Future<Output = Result<GraphQlResponse<ResponseData>, Error>> + Send + 'static>>
where Vars: Serialize, ResponseData: DeserializeOwned + 'static,

Available on crate feature http-surf only.

Implementors§