AppleTransfer API Python SDK

Welcome to the AppleTransfer API Python SDK documentation! This SDK is a comprehensive toolkit for integrating AppleTransfer’s apple transfer functionalities into Python-based applications. Leverage this SDK to seamlessly send apples, manage apple transfers, check statuses, cancel transactions, and update transaction details.

1. Installation

Ensure the requests library is installed in your Python environment. Install it via pip if necessary:

pip install requests

2. Getting started

The SDK introduces two pivotal classes: AppleTransferClient, the gateway to the AppleTransfer API, and AppleTransaction, which facilitates detailed transaction management.

Initializing the client

Instantiate AppleTransferClient with your API key:

from apple_transfer_sdk import AppleTransferClient

client = AppleTransferClient(api_key="your_api_key_here")

3. SDK overview

3.1. SDK code sample

AppleTransfer SDK (Python)
import requests

class AppleTransferClient:
    def __init__(self, api_key, base_url="https://api.appletransfer.com/v1"):
        self.api_key = api_key
        self.base_url = base_url

    def send_apples(self, recipient_system, quantity, variety):
        data = {
            "recipientSystem": recipient_system,
            "quantity": quantity,
            "variety": variety
        }
        response = self._post("/send", data)
        return AppleTransaction(self, response["transactionId"])

    def check_status(self, transaction_id):
        return self._get(f"/status/{transaction_id}")

    def _post(self, endpoint, data):
        url = f"{self.base_url}{endpoint}"
        headers = {"Authorization": f"Bearer {self.api_key}"}
        response = requests.post(url, headers=headers, json=data)
        response.raise_for_status()
        return response.json()

    def _get(self, endpoint):
        url = f"{self.base_url}{endpoint}"
        headers = {"Authorization": f"Bearer {self.api_key}"}
        response = requests.get(url, headers=headers)
        response.raise_for_status()
        return response.json()

class AppleTransaction:
    def __init__(self, client, transaction_id):
        self.client = client
        self.transaction_id = transaction_id

    def status(self):
        return self.client.check_status(self.transaction_id)

    def cancel(self):
        return self.client._post(f"/cancel/{self.transaction_id}", {})

    def update(self, quantity=None, variety=None):
        data = {
            "quantity": quantity,
            "variety": variety
        }
        return self.client._post(f"/update/{self.transaction_id}", data)

3.2. AppleTransferClient

This class is your primary interface to the AppleTransfer API, offering methods to initiate and track apple transfers.

Methods
  • send_apples(recipient_system, quantity, variety): Initiates an apple transfer, returning an AppleTransaction object for further management.

  • check_status(transaction_id): Retrieves the current status of an apple transfer.

3.3. AppleTransaction

This class represents an individual apple transfer, providing capabilities to query its status, cancel it, or update its details.

Methods
  • status(): Returns the transaction’s current status.

  • cancel(): Cancels the ongoing transaction.

  • update(quantity=None, variety=None): Modifies the transaction’s details.

4. Usage examples

4.1. Sending apples

To send apples, call send_apples, which yields an AppleTransaction for subsequent interactions:

transaction = client.send_apples("recipient123", 10, "Gala")
print(transaction.status())

4.2. Checking transaction status

Query a transaction’s status through the AppleTransaction instance:

print(transaction.status())

4.3. Cancelling a transaction

Cancel a transaction using its AppleTransaction instance:

response = transaction.cancel()
print(response)

4.4. Updating a transaction

Modify a transaction’s details:

response = transaction.update(quantity=15, variety="Honeycrisp")
print(response)

5. Best practices

To optimize your use of the SDK, consider the following:

  • Implement exception handling, particularly for operations that depend on network connectivity.

  • Be mindful of the API’s rate limits to design efficient retry mechanisms.

  • Secure your API key diligently; avoid embedding it directly in your source code.

6. Conclusion

The AppleTransfer API Python SDK is engineered to empower developers with robust tools for building sophisticated apple transfer solutions. We eagerly anticipate the innovative applications you will create. Happy coding!