Struct async_graphql_poem::GraphQLRequest
source · pub struct GraphQLRequest(pub Request);Expand description
An extractor for GraphQL request.
You can just use the extractor as in the example below, but I would
recommend using the GraphQL endpoint because it is
easier to integrate.
§Example
use async_graphql::{EmptyMutation, EmptySubscription, Object, Schema};
use async_graphql_poem::GraphQLRequest;
use poem::{
handler,
middleware::AddData,
post,
web::{Data, Json},
EndpointExt, Route,
};
struct Query;
#[Object]
impl Query {
async fn value(&self) -> i32 {
100
}
}
type MySchema = Schema<Query, EmptyMutation, EmptySubscription>;
#[handler]
async fn index(req: GraphQLRequest, schema: Data<&MySchema>) -> Json<async_graphql::Response> {
Json(schema.execute(req.0).await)
}
let schema = Schema::new(Query, EmptyMutation, EmptySubscription);
let app = Route::new().at("/", post(index.with(AddData::new(schema))));Tuple Fields§
§0: RequestTrait Implementations§
source§impl<'a> FromRequest<'a> for GraphQLRequest
impl<'a> FromRequest<'a> for GraphQLRequest
source§fn from_request<'life0, 'async_trait>(
req: &'a Request,
body: &'life0 mut RequestBody
) -> Pin<Box<dyn Future<Output = Result<Self>> + Send + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
'life0: 'async_trait,
fn from_request<'life0, 'async_trait>(
req: &'a Request,
body: &'life0 mut RequestBody
) -> Pin<Box<dyn Future<Output = Result<Self>> + Send + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
'life0: 'async_trait,
Extract from request head and body.
Auto Trait Implementations§
impl !RefUnwindSafe for GraphQLRequest
impl Send for GraphQLRequest
impl Sync for GraphQLRequest
impl Unpin for GraphQLRequest
impl !UnwindSafe for GraphQLRequest
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more