> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Cache de l'application

> Apprenez à utiliser le cache de l'application.

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`.

```python theme={null}
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`.

```python theme={null}
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
```

<Note>
  Si les arguments que vous passez à `cache.update` ne sont pas une instance de `StatusData`, `LogsData` ou `BackupData`, une erreur `SquareException` sera levée.
</Note>

## Vider le cache manuellement

Vous pouvez vider le cache manuellement en utilisant `cache.clear`.

```python theme={null}
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`.

```python theme={null}
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(...)
```
