diff --git a/graphql/graphql.py b/graphql/graphql.py index 8c5eb2f7..e8d311c9 100644 --- a/graphql/graphql.py +++ b/graphql/graphql.py @@ -1,4 +1,5 @@ from .execution import ExecutionResult, execute +from .language.ast import Document from .language.parser import parse from .language.source import Source from .validation import validate @@ -30,8 +31,11 @@ def graphql(schema, request_string='', root_value=None, context_value=None, variable_values=None, operation_name=None, executor=None, return_promise=False, middleware=None): try: - source = Source(request_string, 'GraphQL request') - ast = parse(source) + if isinstance(request_string, Document): + ast = request_string + else: + source = Source(request_string, 'GraphQL request') + ast = parse(source) validation_errors = validate(schema, ast) if validation_errors: return ExecutionResult(