import strawberry import strawberry.utils.graphiql def graphiql_from(Query): schema = strawberry.Schema(Query) async def post(res, req): # we can pass whatever we want to context, query, headers or params, cookies etc context_value = { "query": req.get_queries(), "headers": req.get_headers(), "params": req.get_parameters() } # get all incomming data and parses as json body = await res.get_json() query = body["query"] variables = body.get("variables", None) root_value = body.get("root_value", None) operation_name = body.get("operation_name", None) data = await schema.execute( query, variables, context_value, root_value, operation_name, ) res.cork_end({ "data": ( data.data ), **({"errors": data.errors} if data.errors else {}), **({"extensions": data.extensions} if data.extensions else {}) }) return post