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