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
requests.Session.request()
(Default: None).cookies – Dict or CookieJar object to send with
requests.Session.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