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: Request
Trait Implementations§
source§impl<'a> FromRequest<'a> for GraphQLRequest
impl<'a> FromRequest<'a> for GraphQLRequest
source§async fn from_request(req: &'a Request, body: &mut RequestBody) -> Result<Self>
async fn from_request(req: &'a Request, body: &mut RequestBody) -> Result<Self>
Extract from request head and body.
Auto Trait Implementations§
impl Freeze for GraphQLRequest
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