Zum Hauptinhalt springen
Wenn eine Anfrage gestellt wird, gibt sie Anwendungsinformationen zurück und speichert sie im Application-Objekt selbst zwischen. Das ist nützlich, wenn du in relativ kurzer Zeit erneut auf diese Informationen zugreifen musst und es sich daher nicht lohnt, eine neue API-Anfrage für aktualisierte Daten zu stellen. In solchen Fällen kannst du auf Application.cache zugreifen.
import squarecloud as square

client = square.Client('API_KEY')

async def example():
    app = await client.app('application_id')

    # Note that, as no requests have been made, * in the cache will be None
    print(app.cache.logs)    # None
    print(app.cache.status)  # None
    print(app.cache.backup)  # None

    # Now let's make some requests
    await app.logs()
    await app.status()
    await app.backup()

    # The cache has been updated 🤯
    print(app.cache.logs)    # LogsData(...)
    print(app.cache.status)  # StatusData(...)
    print(app.cache.backup)  # BackupData(...)

Anfragen stellen, ohne den Cache zu aktualisieren

Wenn du aus irgendeinem Grund den Cache beim Stellen einer Anfrage nicht aktualisieren möchtest, kannst du das Argument update_cache=False übergeben.
import squarecloud as square

client = square.Client('API_KEY')

async def example():
    app = await client.app('application_id')
    await app.status(update_cache=False)
    print(app.cache.status)  # None
Wenn die Argumente, die du an cache.update übergibst, keine Instanz von StatusData, LogsData oder BackupData sind, wird ein SquareException-Fehler ausgelöst.

Den Cache manuell leeren

Du kannst den Cache manuell mit cache.clear leeren.
import squarecloud as square

client = square.Client('API_KEY')


async def example():
    app = await client.app('application_id')

    await app.status()
    print(app.cache.status)  # StatusData(...)
    app.cache.clear()
    print(app.cache.status)  # None

Den Cache manuell aktualisieren

Du kannst ihn auch manuell mit der Methode cache.update aktualisieren.
import squarecloud as square

client = square.Client('API_KEY')


async def example():
    app = await client.app('application_id')

    logs = await app.logs()
    status = await app.status()
    backup = await app.backup()

    app.cache.clear()  # Clears the cache
    app.cache.update(status, logs, backup)  # Updates the cache

    print(app.cache.logs)    # LogsData(...)
    print(app.cache.status)  # StatusData(...)
    print(app.cache.backup)  # BackupData(...)