Files
mintlify[bot] 9ee2f23b37 docs: sync es/fr/zh translations with recent English updates (#6691)
Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
2026-07-22 10:30:59 -07:00

705 lines
29 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Configuration dOpenAPI"
description: "Générez une documentation API interactive à partir de fichiers OpenAPI, avec pages d'endpoints automatiques, constructeurs de requêtes et navigation."
keywords: ["OpenAPI", "API specification", "Swagger"]
---
OpenAPI est une spécification destinée à décrire des API. Mintlify prend en charge les documents OpenAPI 3.0 et 3.1 pour générer une documentation dAPI interactive et la maintenir à jour.
<div id="add-an-openapi-specification-file">
## Ajouter un fichier de spécification OpenAPI
</div>
Pour documenter vos endpoints avec OpenAPI, vous avez besoin d'une ou plusieurs spécifications OpenAPI valides au format JSON ou YAML qui respectent la [spécification OpenAPI 3.0 ou 3.1](https://swagger.io/specification/).
Ajoutez des spécifications OpenAPI à votre référentiel de documentation ou hébergez-les en ligne de manière à pouvoir y accéder via une URL. Les spécifications stockées dans votre référentiel sont [proposées au téléchargement](/fr/create/files) à leur chemin sur votre domaine de documentation. Par exemple, `https://your-domain/docs/openapi.json`.
Référencez autant de spécifications OpenAPI que nécessaire dans l'élément `navigation` de votre fichier `docs.json` pour créer des pages pour vos endpoints d'API. Chaque fichier de spécification génère son propre ensemble d'endpoints.
<CodeGroup>
```json Spécification unique
"navigation": {
"tabs": [
{
"tab": "API Reference",
"openapi": "openapi.json"
}
]
}
```
```json Plusieurs spécifications
"navigation": {
"tabs": [
{
"tab": "API Reference",
"openapi": [
"openapi/v1.json",
"openapi/v2.json"
]
}
]
}
```
</CodeGroup>
<Note>
Mintlify prend en charge `$ref` pour les **références internes uniquement** au sein d'un seul document OpenAPI. Les références externes ne sont pas prises en charge.
</Note>
<div id="describe-your-api">
### Décrivez votre API
</div>
Nous recommandons les ressources suivantes pour apprendre et rédiger votre spécification OpenAPI.
* [Guide OpenAPI de Swagger](https://swagger.io/docs/specification/v3_0/basic-structure/) pour apprendre la syntaxe dOpenAPI.
* [Sources Markdown de la spécification OpenAPI](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/) pour consulter les détails de la dernière version de la spécification OpenAPI.
* [Swagger Editor](https://editor.swagger.io/) pour modifier, valider et déboguer votre document OpenAPI.
* [Mint CLI](https://www.npmjs.com/package/mint) pour valider votre document OpenAPI avec la commande : `mint validate`.
<Note>
Le guide OpenAPI de Swagger porte sur OpenAPI v3.0, mais la quasi-totalité des informations sapplique à v3.1. Pour en savoir plus sur les différences entre v3.0 et v3.1, consultez larticle du blog OpenAPI [Migrating from OpenAPI 3.0 to 3.1.0](https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0).
</Note>
<div id="specify-the-base-url-for-your-api">
### Spécifiez lURL de base de votre API
</div>
Pour activer laire de jeu de lAPI, ajoutez un champ `servers` à votre spécification OpenAPI avec lURL de base de votre API.
```json
{
"servers": [
{
"url": "https://api.example.com/v1"
}
]
}
```
Dans une spécification OpenAPI, des chemins comme `/users/{id}` ou `/` identifient les différents points de terminaison (endpoints) dAPI. LURL de base indique où les clients ajoutent ces chemins. Pour en savoir plus sur la configuration du champ `servers`, consultez la page [API Server and Base Path](https://swagger.io/docs/specification/api-host-and-base-path/) de la documentation OpenAPI.
Le bac à sable de lAPI utilise ces URL de serveur pour déterminer où envoyer les requêtes. Si vous spécifiez plusieurs serveurs, un menu déroulant permet aux utilisateurs de basculer entre eux. Si vous ne spécifiez aucun serveur, le bac à sable de lAPI utilise le mode simple, puisquil ne peut pas envoyer de requêtes sans URL de base.
Si votre API comporte des points de terminaison accessibles à différentes URL, vous pouvez [surcharger le champ `servers`](https://swagger.io/docs/specification/v3_0/api-host-and-base-path/#overriding-servers) pour un chemin ou une opération donnés.
<div id="specify-authentication">
### Spécifier lauthentification
</div>
Pour activer lauthentification dans votre documentation et votre environnement de test API, configurez les champs `securitySchemes` et `security` dans votre spécification OpenAPI. Les descriptions dAPI et lenvironnement de test API ajoutent des champs dauthentification en fonction des paramètres de sécurité de votre spécification OpenAPI.
<Steps>
<Step title="Définissez votre méthode dauthentification.">
Ajoutez un champ `securitySchemes` pour définir la manière dont les utilisateurs sauthentifient.
Cet exemple montre une configuration pour lauthentification de type Bearer.
```json
{
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer"
}
}
}
}
```
</Step>
<Step title="Appliquez lauthentification à vos endpoints.">
Ajoutez un champ `security` pour rendre lauthentification obligatoire.
```json
{
"security": [
{
"bearerAuth": []
}
]
}
```
</Step>
</Steps>
Les types dauthentification courants incluent :
* [Clés dAPI](https://swagger.io/docs/specification/authentication/api-keys/) : pour les clés transmises via len-tête, les paramètres de requête ou les cookies.
* [Bearer](https://swagger.io/docs/specification/authentication/bearer-authentication/) : pour les jetons JWT ou OAuth.
* [Basic](https://swagger.io/docs/specification/authentication/basic-authentication/) : pour le nom dutilisateur et le mot de passe.
Si différents endpoints de votre API nécessitent différentes méthodes dauthentification, vous pouvez [remplacer le champ `security`](https://swagger.io/docs/specification/authentication/#:~:text=you%20can%20apply%20them%20to%20the%20whole%20API%20or%20individual%20operations%20by%20adding%20the%20security%20section%20on%20the%20root%20level%20or%20operation%20level%2C%20respectively.) pour une opération donnée.
Pour plus dinformations sur la définition et lapplication de lauthentification, consultez la section [Authentication](https://swagger.io/docs/specification/authentication/) de la documentation OpenAPI.
<div id="set-default-values-for-security-schemes">
#### Définir des valeurs par défaut pour les schémas de sécurité
</div>
Utilisez lextension `x-default` sur un schéma de sécurité pour pré-remplir le champ dauthentification dans le playground de lAPI. Cela est utile pour fournir des valeurs dexemple ou des identifiants de test qui aident les utilisateurs à démarrer rapidement.
```json {6}
{
"components": {
"securitySchemes": {
"apiKey": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key",
"x-default": "your-api-key-here"
}
}
}
}
```
Lextension `x-default` prend en charge les types de schéma de sécurité `apiKey` et `http` bearer. La valeur apparaît comme entrée par défaut dans les champs dauthentification du playground. Le pré-remplissage pour les schémas de sécurité sapplique de manière inconditionnelle et ne nécessite aucune configuration supplémentaire.
Vous pouvez également utiliser `x-default` sur dautres propriétés de schéma dans votre spécification OpenAPI pour définir une valeur par défaut dans le playground de lAPI sans affecter le champ `default` dans la définition du schéma. Contrairement aux schémas de sécurité, le pré-remplissage pour les propriétés qui ne sont pas des schémas de sécurité ne prend effet que lorsque [`api.examples.prefill`](/fr/organize/settings-api) est défini sur `true` dans votre [`docs.json`](/fr/api-playground/overview#example-configuration).
<Note>
Le pré-remplissage depuis `x-default` sur des propriétés de schéma de type array nest pas pris en charge actuellement dans le playground de lAPI, même lorsque `api.examples.prefill` est activé.
</Note>
<div id="let-visitors-download-your-spec">
## Permettez aux visiteurs de télécharger votre spécification
</div>
Activez une entrée « Télécharger la spécification dAPI » dans le [menu contextuel de la page](/fr/organize/settings-structure#contextual) en ajoutant `"download-spec"` à `contextual.options` dans votre `docs.json` :
```json
"contextual": {
"options": ["copy", "download-spec", "chatgpt", "claude"]
}
```
Lorsque loption est activée, un clic dessus télécharge directement votre spécification OpenAPI. Les déploiements comportant plusieurs spécifications les reçoivent regroupées dans `api-specs.zip`. Mintlify masque loption pour les déploiements protégés par `auth` ou `userAuth` afin déviter la fuite du contenu des spécifications depuis une documentation authentifiée.
<div id="customize-your-endpoint-pages">
## Personnalisez les pages de vos endpoints
</div>
Personnalisez les pages de vos endpoints en ajoutant lextension `x-mint` à votre spécification OpenAPI. Lextension `x-mint` vous offre un contrôle supplémentaire sur la manière dont votre documentation dAPI se génère et saffiche.
<div id="metadata">
### Métadonnées
</div>
Remplacez les métadonnées par défaut des pages dAPI générées en ajoutant `x-mint: metadata` à nimporte quelle opération. Vous pouvez utiliser nimporte quel champ de métadonnées valide dans le front matter MDX, à lexception de `openapi`.
```json {7-14}
{
"paths": {
"/users": {
"get": {
"summary": "Get users",
"description": "Retrieve a list of users",
"x-mint": {
"metadata": {
"title": "List all users",
"sidebarTitle": "List users",
"description": "Récupérer les données utilisateur paginées avec des options de filtrage",
"og:title": "Display a list of users"
}
},
"parameters": [
{
// Parameter configuration
}
]
}
}
}
}
```
Vous pouvez également contrôler laffichage du playground pour chaque endpoint à laide des champs metadata `playground` et `groups` :
```json {7-11}
{
"paths": {
"/admin/users": {
"post": {
"summary": "Créer un utilisateur administrateur",
"x-mint": {
"metadata": {
"playground": "auth",
"groups": ["admin"],
"public": true
}
}
}
}
}
}
```
Cette configuration rend la page accessible au public tout en réservant lespace de test interactif aux utilisateurs authentifiés du groupe `admin`.
<div id="content">
### Contenu
</div>
Ajoutez du contenu avant la documentation API générée automatiquement à laide de `x-mint: content`. Lextension `x-mint: content` est compatible avec tous les composants MDX de Mintlify ainsi que leur mise en forme.
```json {6-8}
{
"paths": {
"/users": {
"post": {
"summary": "Créer un utilisateur",
"x-mint": {
"content": "## Prérequis\n\nCe point de terminaison nécessite des privilèges administrateur et est soumis à une limitation du débit.\n\n<Note>Les adresses e-mail des utilisateurs doivent être uniques dans l'ensemble du système.</Note>"
},
"parameters": [
{
// Configuration des paramètres
}
]
}
}
}
}
```
<div id="href">
### href
</div>
Définissez lURL de la page de point de terminaison générée automatiquement à laide de `x-mint: href`. Lorsque `x-mint: href` est présent, la page dAPI générée utilise lURL spécifiée au lieu de lURL par défaut générée automatiquement.
```json {6-8, 14-16}
{
"paths": {
"/legacy-endpoint": {
"get": {
"summary": "Point de terminaison obsolète",
"x-mint": {
"href": "/deprecated-endpoints/legacy-endpoint"
}
}
},
"/documented-elsewhere": {
"post": {
"summary": "Point de terminaison spécial",
"x-mint": {
"href": "/guides/special-endpoint-guide"
}
}
}
}
}
```
<div id="parameter-pills">
### Pastilles de paramètre
</div>
Annotez les paramètres dans la référence de l'API et dans le playground avec des libellés de pastilles personnalisés à l'aide de `x-mint.pre` et `x-mint.post` sur n'importe quel schéma. Les pastilles définies avec `x-mint.pre` s'affichent avant le nom du paramètre, et les pastilles définies avec `x-mint.post` s'affichent après, aux côtés des pastilles intégrées de Mintlify telles que `required`, `read-only` et `write-only`.
Les deux champs acceptent un tableau de chaînes. Chaque chaîne devient sa propre pastille.
```json {7-10}
{
"components": {
"schemas": {
"User": {
"properties": {
"email": {
"type": "string",
"x-mint": {
"pre": ["PII"],
"post": ["indexed", "unique"]
}
}
}
}
}
}
}
```
Pour faire apparaître des champs arbitraires de la spécification OpenAPI sous forme de pastilles sur chaque paramètre sans modifier chaque schéma, configurez [`api.params.post`](/fr/organize/settings-api#api-params) dans votre `docs.json`. Listez les clés des champs que vous souhaitez afficher, et Mintlify lit chaque valeur depuis le schéma et affiche automatiquement les pastilles correspondantes.
```json
{
"api": {
"params": {
"post": ["nullable", "x-internal"]
}
}
}
```
Avec cette configuration, une propriété telle que `{ "type": "string", "nullable": true, "x-internal": "admin" }` affiche les pastilles `nullable` et `admin` à côté de son nom. Les pastilles post apparaissent dans cet ordre : pastilles intégrées (`read-only`, `write-only`), puis pastilles définies par la configuration `api.params.post`, puis pastilles `x-mint.post` propres à la propriété.
<div id="group-display-names">
### Noms d'affichage des groupes
</div>
Définissez un nom d'affichage personnalisé pour le groupe de navigation d'un tag à l'aide de l'extension `x-group` sur un objet tag. Par défaut, Mintlify utilise le `name` du tag à la fois comme libellé du groupe de navigation et comme segment du chemin URL. L'extension `x-group` remplace le libellé du groupe tout en conservant le nom du tag pour l'URL.
Cela est utile lorsque vous souhaitez un nom de groupe lisible qui diffère du tag utilisé dans les chemins de votre API.
```json {4-9}
{
"tags": [
{
"name": "user-management",
"description": "Endpoints for managing users",
"x-group": "User Management"
}
],
"paths": {
"/users": {
"get": {
"tags": ["user-management"],
"summary": "List users"
}
}
}
}
```
Dans cet exemple, le groupe de navigation s'affiche sous le nom "User Management", mais l'URL de la page générée utilise toujours le nom du tag `user-management` comme segment de chemin.
<div id="auto-populate-api-pages">
## Remplir automatiquement les pages d'API
</div>
Ajoutez un champ `openapi` à nimporte quel élément de navigation dans votre `docs.json` pour générer automatiquement des pages pour les endpoints OpenAPI. Vous pouvez contrôler lemplacement de ces pages dans votre structure de navigation, soit en tant que sections API dédiées, soit aux côtés dautres pages.
Le champ `openapi` accepte soit un chemin dans votre dépôt de documentation, soit une URL vers un document OpenAPI hébergé. Les spécifications hébergées doivent être accessibles depuis l'Internet public.
<Tip>
Lorsque vous utilisez une URL pour votre spécification OpenAPI, les modifications de la spécification ne déclenchent pas de push Git, donc vos docs ne se redéploient pas automatiquement. Pour garder vos docs synchronisés, appelez lendpoint dAPI [Trigger deployment](/fr/api/update/trigger) dans la même action CI qui génère ou met à jour votre spécification. Ainsi, vos docs se mettent à jour automatiquement sans avoir à déclencher manuellement un déploiement depuis le tableau de bord.
</Tip>
Les pages dendpoint générées ont les métadonnées par défaut suivantes :
* `title` : le champ `summary` de lopération, sil est présent. Sil ny a pas de `summary`, Mintlify génère le titre à partir de la méthode HTTP et de lendpoint.
* `description` : le champ `description` de lopération, sil est présent.
* `version` : la valeur `version` de lancre ou de longlet parent, si elle est présente.
* `deprecated` : le champ `deprecated` de lopération. Si `true`, une étiquette « obsolète » apparaît à côté du titre de lendpoint dans la navigation latérale et sur la page de lendpoint.
<Tip>
Pour exclure des endpoints spécifiques de vos pages dAPI générées automatiquement, ajoutez la propriété [x-hidden](/fr/api-playground/managing-page-visibility#x-hidden) à lopération dans votre spécification OpenAPI.
</Tip>
Il existe deux approches pour ajouter des pages dendpoint à votre documentation :
1. **Sections API dédiées** : référencez des spécifications OpenAPI dans des éléments de navigation pour des sections API dédiées.
2. **Endpoints sélectifs** : référencez des endpoints spécifiques dans votre navigation, aux côtés dautres pages.
<div id="dedicated-api-sections">
### Sections dAPI dédiées
</div>
Générez des sections dAPI dédiées en ajoutant un champ `openapi` à un élément de navigation, sans autres pages. Tous les points de terminaison de la spécification apparaissent dans la section générée.
```json {5}
"navigation": {
"tabs": [
{
"tab": "Référence API",
"openapi": "https://petstore3.swagger.io/api/v3/openapi.json"
}
]
}
```
Pour organiser plusieurs spécifications OpenAPI dans des sections distinctes de votre documentation, assignez chaque spécification à un groupe différent dans votre hiérarchie de navigation. Chaque groupe peut référencer sa propre spécification OpenAPI.
```json {8-11, 15-18}
"navigation": {
"tabs": [
{
"tab": "Référence API",
"groups": [
{
"group": "API Utilisateurs",
"openapi": {
"source": "/path/to/users-openapi.json",
"directory": "users-api-reference"
}
},
{
"group": "API Administration",
"openapi": {
"source": "/path/to/admin-openapi.json",
"directory": "admin-api-reference"
}
}
]
}
]
}
```
<Note>
Le champ `directory` est facultatif et indique où Mintlify stocke les pages dAPI générées dans votre dépôt de documentation. Sil nest pas défini, le répertoire par défaut est `api-reference` à la racine de votre dépôt.
</Note>
<div id="selective-endpoints">
### Points de terminaison sélectifs
</div>
Si vous souhaitez mieux contrôler lemplacement des points de terminaison dans votre documentation, vous pouvez référencer des points de terminaison précis dans votre navigation. Cette approche vous permet de générer des pages pour des points de terminaison dAPI aux côtés dautres contenus. Vous pouvez également utiliser cette approche pour combiner des points de terminaison provenant de différentes spécifications OpenAPI.
<div id="set-a-default-openapi-spec">
#### Définir une spécification OpenAPI par défaut
</div>
Configurez une spécification OpenAPI par défaut pour un élément de navigation. Référencez ensuite des points de terminaison spécifiques dans le champ `pages`.
```json {12, 15-16}
"navigation": {
"tabs": [
{
"tab": "Démarrage",
"pages": [
"quickstart",
"installation"
]
},
{
"tab": "Référence API",
"openapi": "/path/to/openapi.json",
"pages": [
"api-overview",
"GET /users",
"POST /users",
"guides/authentication"
]
}
]
}
```
Toute entrée de page correspondant au format `METHOD /path` génère une page dAPI pour ce point de terminaison à partir de la spécification OpenAPI par défaut.
<div id="openapi-spec-inheritance">
#### Héritage de la spécification OpenAPI
</div>
Les éléments de navigation enfants héritent de la spécification OpenAPI de leur parent, sauf sils définissent la leur.
```json {3, 7-8, 11, 13-14}
{
"group": "Référence API",
"openapi": "/path/to/openapi-v1.json",
"pages": [
"aperçu",
"authentification",
"GET /users",
"POST /users",
{
"group": "Commandes",
"openapi": "/path/to/openapi-v2.json",
"pages": [
"GET /orders",
"POST /orders"
]
}
]
}
```
<div id="individual-endpoints">
#### Points de terminaison individuels
</div>
Faites référence à des points de terminaison spécifiques sans définir de spécification OpenAPI par défaut en incluant le chemin daccès au fichier. Vous pouvez référencer des points de terminaison issus de plusieurs spécifications OpenAPI dans une même section de documentation.
```json {5-6}
"navigation": {
"pages": [
"introduction",
"user-guides",
"/path/to/users-openapi.json POST /users",
"/path/to/orders-openapi.json GET /orders"
]
}
```
Cette approche est utile lorsque vous avez besoin de points de terminaison individuels provenant de différentes spécifications, que vous souhaitez inclure uniquement certains points de terminaison, ou que vous voulez les intégrer aux côtés dautres types de documentation.
<div id="create-mdx-pages-from-your-openapi-specification">
## Créer des pages MDX à partir de votre spécification OpenAPI
</div>
Pour un contrôle plus fin de chaque page dendpoint, créez des pages MDX à partir de votre spécification OpenAPI. Vous pourrez ainsi personnaliser les métadonnées et le contenu des pages, ainsi que réorganiser ou exclure des pages de votre navigation, tout en conservant les paramètres et réponses générés automatiquement.
Il existe deux façons de documenter votre spécification OpenAPI avec des pages MDX distinctes :
* Documenter les endpoints avec le champ `openapi` dans le frontmatter.
* Documenter les modèles de données avec le champ `openapi-schema` dans le frontmatter.
<div id="document-endpoints">
### Documenter les endpoints
</div>
Créez une page pour chaque endpoint et indiquez quelle opération OpenAPI afficher en utilisant le champ `openapi` dans le frontmatter.
<CodeGroup>
```mdx Example
---
title: "Récupérer des utilisateurs"
description: "Renvoie toutes les plantes du système auxquelles l'utilisateur a accès"
openapi: "/path/to/openapi-1.json GET /users"
deprecated: true
version: "1.0"
---
```
```mdx Format
---
title: "titre de la page"
description: "description de la page"
openapi: chemin-vers-fichier-openapi méthode chemin
deprecated: booléen (facultatif)
version: "chaîne-de-version" (facultatif)
---
```
</CodeGroup>
La méthode et le chemin doivent correspondre exactement à votre spécification OpenAPI. Si vous avez plusieurs spécifications OpenAPI, incluez le chemin vers la spécification correcte dans votre référence. Vous pouvez également référencer des URL OpenAPI externes dans `docs.json`.
<Warning>
**Spécifiez toujours le chemin du fichier OpenAPI lorsque vous avez plusieurs spécifications OpenAPI dans votre référentiel.**
Mintlify charge chaque spécification OpenAPI de votre référentiel de documentation, même si elle nest pas référencée dans `docs.json`. Lorsquune page MDX utilise `openapi: "MÉTHODE /chemin"` sans chemin de fichier, Mintlify recherche une opération correspondante dans toutes les spécifications chargées. Si plus dune spécification contient la même méthode et le même chemin, la première correspondance lemporte selon lordre alphabétique du nom de fichier, ce qui peut ne pas être la spécification attendue.
Pour éviter toute ambiguïté, procédez de lune des façons suivantes :
- Incluez le chemin du fichier de spécification dans le frontmatter : `openapi: "chemin/vers/openapi-correct.json POST /v1/endpoint"`.
- Utilisez la [génération automatique de pages](#auto-populate-api-pages) en référençant le fichier OpenAPI dans `docs.json`, ce qui associe toujours les endpoints à la bonne spécification.
- Supprimez le chemin en conflit de lautre spécification.
- Supprimez de votre référentiel les fichiers OpenAPI dont vous navez plus besoin.
</Warning>
<div id="autogenerate-endpoint-pages">
#### Générer automatiquement des pages dendpoint
</div>
Pour générer automatiquement des fichiers MDX à partir de votre spécification OpenAPI, utilisez le [scraper](https://www.npmjs.com/package/@mintlify/scraping) de Mintlify.
```bash
npx @mintlify/scraping@latest openapi-file <path-to-openapi-file> -o <folder-name>
```
<Tip>
Ajoutez loption `-o` pour préciser un dossier où déposer les fichiers. Si aucun dossier nest indiqué, les fichiers seront créés dans le répertoire de travail.
</Tip>
<div id="document-data-models">
### Documenter les modèles de données
</div>
Créez une page pour chaque structure de données définie dans `components.schemas` de votre spécification OpenAPI en utilisant le champ `openapi-schema` dans le frontmatter.
<CodeGroup>
```mdx Example
---
openapi-schema: OrderItem
---
```
```mdx Format
---
openapi-schema: "openapi-file-path schema-key"
---
```
</CodeGroup>
Si vous avez des schémas portant le même nom dans plusieurs fichiers, indiquez le fichier OpenAPI :
<CodeGroup>
```mdx Example
---
openapi-schema: en-schema.json OrderItem
---
```
```mdx Format
---
openapi-schema: "path-to-schema-file schema-key"
---
```
</CodeGroup>
<div id="webhooks">
## Webhooks
</div>
Les webhooks sont des callbacks HTTP que votre API envoie pour avertir des systèmes externes lorsque des événements se produisent. Les documents OpenAPI 3.1+ prennent en charge les webhooks.
Ajoutez un champ `webhooks` à votre document OpenAPI, en parallèle du champ `paths`.
Pour en savoir plus sur la définition des webhooks, consultez la section [Webhooks](https://spec.openapis.org/oas/v3.1.0#oasWebhooks) de la documentation OpenAPI.
Pour créer une page MDX pour un webhook (OpenAPI 3.1+), utilisez `webhook` au lieu dune méthode HTTP :
```mdx
---
title: "Webhook de mise à jour de commande"
description: "Déclenché lorsqu'une commande est mise à jour"
openapi: "openapi.json webhook orderUpdated"
---
```
Le nom du webhook doit correspondre exactement à la clé du champ `webhooks` de votre spécification OpenAPI.
<div id="callbacks">
## Callbacks
</div>
Les callbacks décrivent des requêtes hors bande que votre API envoie à une URL fournie par l'appelant, par exemple des notifications d'événements liées à une opération spécifique. Lorsqu'une opération OpenAPI définit des `callbacks`, Mintlify les affiche sur la page du endpoint dans une section repliable entre le corps de la requête et la section de réponse. Chaque callback affiche sa méthode HTTP, son expression et réutilise les mêmes composants de corps et de réponse que l'opération principale.
Vous n'avez rien à configurer pour afficher les callbacks. Si votre spécification OpenAPI définit des `callbacks` sur une opération, ils apparaissent automatiquement sur la page du endpoint générée.
Pour en savoir plus sur la définition des callbacks, consultez la section [Callbacks](https://spec.openapis.org/oas/v3.1.0#callback-object) de la documentation OpenAPI.
Exemple de définition de callback sur une opération :
```yaml
paths:
/subscribe:
post:
summary: S'abonner aux événements
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
callbackUrl:
type: string
format: uri
responses:
"201":
description: Abonnement créé
callbacks:
orderUpdated:
"{$request.body#/callbackUrl}":
post:
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
status:
type: string
responses:
"200":
description: Callback reçu
```