> ## Documentation Index
> Fetch the complete documentation index at: https://wiki.another-horizon.eu/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration d’AsyncAPI

> Créez une documentation WebSocket avec des spécifications AsyncAPI.

<div id="demo">
  ## Démo
</div>

Consultez l’[aire de jeu WebSocket](/fr/api-playground/websocket-playground) pour un exemple de l’aire de jeu AsyncAPI.

<div id="add-an-asyncapi-specification-file">
  ## Ajouter un fichier de spécification AsyncAPI
</div>

Pour créer des pages pour vos WebSockets, vous devez disposer d’un document de schéma AsyncAPI valide, au format JSON ou YAML, conforme à la [spécification AsyncAPI 3.0+](https://www.asyncapi.com/docs/reference/specification/v3.0.0).

<Tip>
  Utilisez [AsyncAPI Studio](https://studio.asyncapi.com/) pour valider votre schéma AsyncAPI.
</Tip>

```json {3} theme={null}
/votre-projet
  |- docs.json
  |- asyncapi.json
```

<div id="auto-populate-websockets-pages">
  ## Générer automatiquement les pages WebSocket
</div>

Pour générer automatiquement des pages pour tous les canaux de votre schéma AsyncAPI, ajoutez une propriété `asyncapi` à n’importe quel élément de navigation. La propriété `asyncapi` accepte soit un chemin vers un document de schéma AsyncAPI dans votre dépôt de documentation, soit une URL vers un document AsyncAPI hébergé, soit un tableau de liens vers des documents de schéma AsyncAPI.

<div id="examples-with-tabs">
  ### Exemples avec onglets
</div>

<CodeGroup>
  ```json Local file theme={null}
  "navigation": {
    "tabs": [
      {
          "tab": "Référence de l’API",
          "asyncapi": "/path/to/asyncapi.json"
      }
    ]
  }

  ```

  ```json Remote URL theme={null}
  "navigation": {
    "tabs": [
      {
          "tab": "Référence de l’API",
          "asyncapi": "https://github.com/asyncapi/spec/blob/master/examples/simple-asyncapi.yml"
      }
    ]
  }
  ```

  ```json Multiple files theme={null}
  "navigation": {
    "tabs": [
      {
        "tab": "Référence de l’API",
        "asyncapi": [
          "/path/to/events.json",
          "/path/to/webhooks.json"
        ]
      }
    ]
  }
  ```
</CodeGroup>

<Note>
  Lorsque vous spécifiez plusieurs fichiers AsyncAPI, chaque fichier génère son propre ensemble de pages de canaux.
</Note>

<div id="examples-with-groups">
  ### Exemples avec des groupes
</div>

```json theme={null}
"navigation": {
  "tabs": [
    {
      "tab": "AsyncAPI",
      "groups": [
        {
          "group": "Websockets",
          "asyncapi": {
            "source": "/path/to/asyncapi.json",
            "directory": "websockets"
          }
        }
      ]
    }
  ]
}
```

<Note>
  Le champ `directory` est facultatif. S’il n’est pas indiqué, les fichiers seront placés dans le dossier **api-reference** du dépôt de documentation.
</Note>

<div id="channel-page">
  ## Page de canal
</div>

Si vous souhaitez mieux contrôler l’ordre de vos canaux ou ne référencer que certains canaux, créez un fichier MDX avec la propriété `asyncapi` dans le frontmatter.

```mdx theme={null}
---
title: "Canal WebSocket"
asyncapi: "/path/to/asyncapi.json channelName"
---
```
