gql.transport.requests

class gql.transport.requests.RequestsHTTPTransport(url: str, headers: ~typing.Dict[str, ~typing.Any] | None = None, cookies: ~typing.Dict[str, ~typing.Any] | ~requests.cookies.RequestsCookieJar | None = None, auth: ~requests.auth.AuthBase | None = None, use_json: bool = True, timeout: int | None = None, verify: bool | str = True, retries: int = 0, method: str = 'POST', retry_backoff_factor: float = 0.1, retry_status_forcelist: ~typing.Collection[int] = (429, 500, 502, 503, 504), json_serialize: ~typing.Callable = <function dumps>, json_deserialize: ~typing.Callable = <function loads>, **kwargs: ~typing.Any)

Bases: Transport

Sync Transport used to execute GraphQL queries on remote servers.

The transport uses the requests library to send HTTP POST requests.

file_classes: Tuple[Type[Any], ...] = (<class 'io.IOBase'>,)
__init__(url: str, headers: ~typing.Dict[str, ~typing.Any] | None = None, cookies: ~typing.Dict[str, ~typing.Any] | ~requests.cookies.RequestsCookieJar | None = None, auth: ~requests.auth.AuthBase | None = None, use_json: bool = True, timeout: int | None = None, verify: bool | str = True, retries: int = 0, method: str = 'POST', retry_backoff_factor: float = 0.1, retry_status_forcelist: ~typing.Collection[int] = (429, 500, 502, 503, 504), json_serialize: ~typing.Callable = <function dumps>, json_deserialize: ~typing.Callable = <function loads>, **kwargs: ~typing.Any)

Initialize the transport with the given request parameters.

Parameters:
  • url – The GraphQL server URL.

  • headers – Dictionary of HTTP Headers to send with the Request (Default: None).

  • cookies – Dict or CookieJar object to send with the Request (Default: None).

  • auth – Auth tuple or callable to enable Basic/Digest/Custom HTTP Auth (Default: None).

  • use_json – Send request body as JSON instead of form-urlencoded (Default: True).

  • timeout – Specifies a default timeout for requests (Default: None).

  • verify – Either a boolean, in which case it controls whether we verify the server’s TLS certificate, or a string, in which case it must be a path to a CA bundle to use. (Default: True).

  • retries – Pre-setup of the requests’ Session for performing retries

  • method – HTTP method used for requests. (Default: POST).

  • retry_backoff_factor – A backoff factor to apply between attempts after the second try. urllib3 will sleep for: {backoff factor} * (2 ** ({number of previous retries}))

  • retry_status_forcelist – A set of integer HTTP status codes that we should force a retry on. A retry is initiated if the request method is in allowed_methods and the response status code is in status_forcelist. (Default: [429, 500, 502, 503, 504])

  • json_serialize – Json serializer callable. By default json.dumps() function

  • json_deserialize – Json deserializer callable. By default json.loads() function

  • kwargs – Optional arguments that request takes. These can be seen at the requests source code or the official docs

connect()

Establish a session with the transport.

execute(document: DocumentNode, variable_values: Dict[str, Any] | None = None, operation_name: str | None = None, timeout: int | None = None, extra_args: Dict[str, Any] | None = None, upload_files: bool = False) ExecutionResult

Execute GraphQL query.

Execute the provided document AST against the configured remote server. This uses the requests library to perform a HTTP POST request to the remote server.

Parameters:
  • document – GraphQL query as AST Node object.

  • variable_values – Dictionary of input parameters (Default: None).

  • operation_name – Name of the operation that shall be executed. Only required in multi-operation documents (Default: None).

  • timeout – Specifies a default timeout for requests (Default: None).

  • extra_args – additional arguments to send to the requests post method

  • upload_files – Set to True if you want to put files in the variable values

Returns:

The result of execution. data is the result of executing the query, errors is null if no errors occurred, and is a non-empty array if an error occurred.

execute_batch(reqs: List[GraphQLRequest], timeout: int | None = None, extra_args: Dict[str, Any] | None = None) List[ExecutionResult]

Execute multiple GraphQL requests in a batch.

Execute the provided requests against the configured remote server. This uses the requests library to perform a HTTP POST request to the remote server.

Parameters:
  • reqs – GraphQL requests as a list of GraphQLRequest objects.

  • timeout – Specifies a default timeout for requests (Default: None).

  • extra_args – additional arguments to send to the requests post method

Returns:

A list of results of execution. For every result data is the result of executing the query, errors is null if no errors occurred, and is a non-empty array if an error occurred.

close()

Closing the transport by closing the inner session