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
'a: 'async_trait,
'life0: 'async_trait,
Self: '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
'a: 'async_trait,
'life0: 'async_trait,
Self: 'async_trait,
Extract from request head and body.