Passer au contenu principal
Lorsqu’une requête est effectuée, elle renvoie les informations de l’application et les met en cache dans l’objet Application lui-même. C’est utile si vous devez accéder à nouveau à ces informations dans un délai relativement court, c’est-à-dire lorsqu’il n’est pas nécessaire de faire une nouvelle requête à l’API pour obtenir des données actualisées. Dans ce cas, vous pouvez accéder à Application.cache.
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(...)

Effectuer des requêtes sans mettre à jour le cache

Si, pour une raison quelconque, vous ne souhaitez pas mettre à jour le cache lors d’une requête, vous pouvez passer l’argument update_cache=False.
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
Si les arguments que vous passez à cache.update ne sont pas une instance de StatusData, LogsData ou BackupData, une erreur SquareException sera levée.

Vider le cache manuellement

Vous pouvez vider le cache manuellement en utilisant cache.clear.
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

Mettre à jour le cache manuellement

Vous pouvez également le mettre à jour manuellement à l’aide de la méthode cache.update.
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(...)