Service ClientsΒΆ
The Globus SDK provides a client class for every public Globus API. Each client object takes authentication credentials from config files, environment variables, or programmatically via GlobusAuthorizers.
Once instantiated, a Client gives you high-level interface to make API calls, without needing to know Globus API endpoints or their various parameters.
For example, you could use the TransferClient
to list your task history
very simply:
from globus_sdk import TransferClient
# you must have transfer_token in your config for this to work
tc = TransferClient()
print("My Last 25 Tasks:")
# `filter` to get Delete Tasks (default is just Transfer Tasks)
for task in tc.task_list(num_results=25, filter="type:TRANSFER,DELETE"):
print(task["task_id"], task["type"], task["status"])
Multi-Thread and Multi-Process Safety
Each Globus SDK client class holds a networking session object to interact with the Globus API. Using a previously created service client object after forking or between multiple threads should be considered unsafe. In multi-processing applications, it is recommended to create service client objects after process forking and to ensure that there is only one service client instance created per process.
Client Types
- Common API
The Base Client provides methods which are accessible via any client object. These methods correspond directly to HTTP verbs and represent single HTTP requests.
For example,
get()
is a method ofTransferClient
andAuthClient
objects, and for each of those it sends an HTTPGET
to the target service.- Globus Auth
Using Globus Auth in the SDK is done via several different client types which represent different types of applications.
Additionally, there are objects for managing OAuth2 login flows and customized responses which make it easier to unpack token responses.
The Globus Auth interface also includes the
IdentityMap
object, which helps manage bulk identity lookups.- Globus Transfer
The Globus Transfer API is usable in the SDK through the
TransferClient
object.Additionally, there are helper objects for assembling Transfer and Delete Task data for submission to the service.
Customized response types simplify handling of paginated response data, producing iterables of the underlying response types.
- Globus Search
The Globus Search API is usable in the SDK through the
SearchClient
object.Additionally, there is a
SearchQuery
object which provides a chainable API for building query documents.
Table of Contents