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(...)