diff --git a/gql/transport/requests.py b/gql/transport/requests.py index 71399a55..3879949b 100644 --- a/gql/transport/requests.py +++ b/gql/transport/requests.py @@ -1,5 +1,6 @@ from __future__ import absolute_import +import json import requests from graphql.execution import ExecutionResult from graphql.language.printer import print_ast @@ -20,11 +21,12 @@ def __init__(self, url, auth=None, use_json=False, timeout=None, **kwargs): self.default_timeout = timeout self.use_json = use_json - def execute(self, document, variable_values=None, timeout=None): - query_str = print_ast(document) + def execute(self, document, variable_values=None, operation_name=None, timeout=None): + query = print_ast(document) payload = { - 'query': query_str, - 'variables': variable_values or {} + 'query': json.dumps(query) if isinstance(query, dict) else query, + 'variables': variable_values or {}, + 'operationName': operation_name or '' } data_key = 'json' if self.use_json else 'data'