Passer au contenu principal
OpenAPI est une spécification permettant de décrire des API. Mintlify prend en charge les documents OpenAPI 3.0+ pour générer une documentation API interactive et la maintenir à jour.

Ajouter un fichier de spécification OpenAPI

Pour documenter vos endpoints avec OpenAPI, vous avez besoin d’un document OpenAPI valide au format JSON ou YAML conforme à la spécification OpenAPI 3.0+. Vous pouvez créer des pages d’API à partir d’un ou de plusieurs documents OpenAPI.

Décrire votre API

Nous recommandons les ressources suivantes pour apprendre et concevoir vos documents OpenAPI.
Le Guide OpenAPI de Swagger porte sur OpenAPI v3.0, mais quasiment toutes les informations s’appliquent à la v3.1. Pour plus d’informations sur les différences entre la v3.0 et la v3.1, consultez Migrer d’OpenAPI 3.0 à 3.1.0 sur le blog OpenAPI.

Spécifier l’URL de votre API

Pour activer des fonctionnalités Mintlify comme le Terrain de jeu API, ajoutez un champ servers à votre document OpenAPI avec l’URL de base de votre API.
{
  "servers": [
    {
      "url": "https://api.example.com/v1"
    }
  ]
}
Dans un document OpenAPI, les différents endpoints d’API sont définis par leurs chemins, comme /users/{id} ou simplement /. L’URL de base indique où ces chemins doivent être ajoutés. Pour plus d’informations sur la configuration du champ servers, consultez API Server and Base Path dans la documentation OpenAPI. Le Terrain de jeu API utilise ces URL de serveur pour déterminer où envoyer les requêtes. Si vous spécifiez plusieurs serveurs, un menu déroulant permettra aux utilisateurs de passer d’un serveur à l’autre. Si vous ne spécifiez aucun serveur, le Terrain de jeu API utilisera le mode simple, car il ne peut pas envoyer de requêtes sans URL de base. Si votre API comporte des endpoints disponibles à des URL différentes, vous pouvez remplacer le champ server pour un chemin ou une opération donnée.

Spécifier l’authentification

Pour activer l’authentification dans votre documentation API et le Terrain de jeu API, configurez les champs securitySchemes et security dans votre document OpenAPI. Les descriptions d’API et le Terrain de jeu API ajouteront des champs d’authentification en fonction des configurations de sécurité de votre document OpenAPI.
1

Définissez votre méthode d’authentification.

Ajoutez un champ securitySchemes pour définir comment les utilisateurs s’authentifient.Cet exemple montre une configuration pour l’authentification bearer.
{
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}
2

Appliquez l’authentification à vos endpoints.

Ajoutez un champ security pour rendre l’authentification obligatoire.
{
  "security": [
    {
      "bearerAuth": []
    }
  ]
}
Les types d’authentification courants incluent :
  • API Keys : clés transmises via l’en-tête, la requête ou le cookie.
  • Bearer : jetons JWT ou OAuth.
  • Basic : nom d’utilisateur et mot de passe.
Si différents endpoints de votre API requièrent des méthodes d’authentification différentes, vous pouvez remplacer le champ security pour une opération donnée. Pour plus d’informations sur la définition et l’application de l’authentification, consultez Authentication dans la documentation OpenAPI.

Extension x-mint

L’extension x-mint est une extension OpenAPI personnalisée qui offre un contrôle accru sur la manière dont votre documentation d’API est générée et affichée.

Métadonnées

Remplacez les métadonnées par défaut des pages d’API générées en ajoutant x-mint: metadata à n’importe quelle opération. Vous pouvez utiliser tout champ de métadonnées valide dans le frontmatter MDX, à l’exception de openapi :
{
  "paths": {
    "/users": {
      "get": {
        "summary": "Obtenir la liste des utilisateurs",
        "description": "Récupérer une liste d’utilisateurs",
        "x-mint": {
          "metadata": {
            "title": "Lister tous les utilisateurs",
            "description": "Récupérer des données d’utilisateurs paginées avec des options de filtrage",
            "og:title": "Afficher une liste d’utilisateurs",
          }
        },
        "parameters": [
          {
            // Configuration du paramètre
          }
        ]
      }
    }
  }
}

Contenu

Ajoutez du contenu avant la documentation API générée automatiquement à l’aide de x-mint: content :
{
  "paths": {
    "/users": {
      "post": {
        "summary": "Créer un utilisateur",
        "x-mint": {
          "content": "## Prérequis\n\nCet endpoint nécessite des droits administrateur et est soumis à un taux limite.\n\n<Note>Les adresses e-mail des utilisateurs doivent être uniques dans l’ensemble du système.</Note>"
        },
        "parameters": [
          {
            // Parameter configuration
          }
        ]
      }
    }
  }
}
L’extension content prend en charge tous les composants MDX de Mintlify ainsi que leur mise en forme.

Href

Modifiez l’URL de la page de point de terminaison dans votre documentation à l’aide de x-mint: href :
{
  "paths": {
    "/legacy-endpoint": {
      "get": {
        "summary": "Ancien endpoint",
        "x-mint": {
          "href": "/deprecated-endpoints/legacy-endpoint"
        }
      }
    },
    "/documented-elsewhere": {
      "post": {
        "summary": "Endpoint spécial"
        "x-mint": {
          "href": "/guides/special-endpoint-guide"
        }
      }
    }
  }
}
Lorsque x-mint: href est présent, l’entrée de navigation renvoie directement à l’URL spécifiée au lieu de générer une page d’API.

MCP

Exposez sélectivement des endpoints comme outils Model Context Protocol (MCP) à l’aide de x-mint: mcp. N’activez que les endpoints sûrs pour un accès public via des outils d’IA.
mcp
object
La configuration MCP de l’endpoint.
{
  "paths": {
    "/users": {
      "post": {
        "summary": "Create user",
        "x-mint": {
          "mcp": {
            "enabled": true
          },
          // ...
        }
      }
    },
    "/users": {
      "delete": {
        "summary": "Delete user (admin only)",
        // No `x-mint: mcp` so this endpoint is not exposed as an MCP tool
        // ...
      }
    }
  }
}
Pour en savoir plus, consultez Model Context Protocol.

Remplir automatiquement les pages API

Ajoutez un champ openapi à n’importe quel élément de navigation dans votre docs.json pour générer automatiquement des pages pour les endpoints OpenAPI. Vous pouvez contrôler l’emplacement de ces pages dans votre structure de navigation, en tant que sections API dédiées ou aux côtés d’autres pages. Le champ openapi accepte soit un chemin de fichier dans votre dépôt de documentation, soit une URL vers un document OpenAPI hébergé. Les pages d’endpoint générées ont les valeurs de métadonnées par défaut suivantes :
  • title : Le champ summary de l’opération, s’il est présent. S’il n’y a pas de summary, le titre est généré à partir de la méthode HTTP et de l’endpoint.
  • description : Le champ description de l’opération, s’il est présent.
  • version : La valeur version de l’ancre ou de l’onglet parent, si elle est présente.
  • deprecated : Le champ deprecated de l’opération. Si true, un badge « obsolète » apparaîtra à côté du titre de l’endpoint dans la navigation latérale et sur la page de l’endpoint.
Pour exclure des endpoints spécifiques de vos pages API générées automatiquement, ajoutez la propriété x-hidden à l’opération dans votre spécification OpenAPI.
Il existe deux approches pour ajouter des pages d’endpoint à votre documentation :
  1. Sections API dédiées : Référencez des spécifications OpenAPI dans des éléments de navigation pour créer des sections API dédiées.
  2. Endpoints sélectifs : Référencez des endpoints spécifiques dans votre navigation, aux côtés d’autres pages.

Sections API dédiées

Générez des sections API dédiées en ajoutant un champ openapi à un élément de navigation, sans autres pages. Tous les endpoints de la spécification seront inclus :
"navigation": {
  "tabs": [
    {
        "tab": "Référence de l’API",
        "openapi": "https://petstore3.swagger.io/api/v3/openapi.json"
    }
  ]
}
Vous pouvez utiliser plusieurs spécifications OpenAPI dans différentes sections de navigation :
"navigation": {
  "tabs": [
    {
      "tab": "Référence de l’API",
      "groups": [
        {
          "group": "Utilisateurs",
          "openapi": {
            "source": "/path/to/openapi-1.json",
            "directory": "api-reference"
          }
        },
        {
          "group": "Admin",
          "openapi": {
            "source": "/path/to/openapi-2.json",
            "directory": "api-reference"
            "directory": "api-reference"
        }
      ]
    }
  ]
}
Le champ directory est facultatif et indique où les pages d’API générées sont stockées dans votre dépôt de documentation. S’il n’est pas défini, elles sont enregistrées par défaut dans le répertoire api-reference de votre dépôt.

Points de terminaison sélectionnés

Si vous souhaitez mieux contrôler l’emplacement 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 endpoints d’API aux côtés d’autres contenus.

Définir une spécification OpenAPI par défaut

Configurez une spécification OpenAPI par défaut pour un élément de navigation, puis référencez des points de terminaison précis dans le champ pages :
"navigation": {
  "tabs": [
    {
      "tab": "Démarrage",
      "pages": [
        "quickstart",
        "installation"
      ]
    },
    {
      "tab": "Référence de l’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érera une page API pour cet endpoint à partir de la spécification OpenAPI par défaut.

Héritage de la spécification OpenAPI

Les spécifications OpenAPI sont héritées dans la hiérarchie de navigation. Les éléments de navigation enfants héritent de la spécification OpenAPI de leur parent, sauf s’ils définissent la leur :
{
  "group": "Référence de l’API",
  "openapi": "/path/to/openapi-v1.json",
  "pages": [
    "overview",
    "authentication",
    "GET /users",
    "POST /users",
    {
      "group": "Commandes",
      "openapi": "/path/to/openapi-v2.json",
      "pages": [
        "GET /orders",
        "POST /orders"
      ]
    }
  ]
}

Points de terminaison individuels

Faites référence à des points de terminaison spécifiques sans définir de spécification OpenAPI par défaut en incluant le chemin du fichier :
"navigation": {
  "pages": [
    "introduction",
    "guides-utilisateur",
    "/path/to/openapi-v1.json POST /users",
    "/path/to/openapi-v2.json GET /orders"
  ]
}
Cette approche est utile lorsque vous avez besoin d’endpoints individuels issus de différentes spécifications ou si vous souhaitez n’inclure que certains endpoints.

Créer des fichiers MDX pour les pages API

Pour contrôler chaque page d’endpoint individuellement, créez des pages MDX pour chaque opération. Cela vous permet de personnaliser les métadonnées de page, d’ajouter du contenu, d’omettre certaines opérations ou de réorganiser les pages dans votre navigation, au niveau de chaque page. Voir un exemple de page MDX OpenAPI de MindsDB et son rendu dans leur documentation en ligne.

Spécifier les fichiers manuellement

Créez une page MDX pour chaque endpoint et indiquez quelle opération OpenAPI afficher via le champ openapi dans le frontmatter. Lorsque vous référencez une opération OpenAPI de cette manière, le nom, la description, les paramètres, les réponses et le Terrain de jeu API sont générés automatiquement à partir de votre document OpenAPI. Si vous avez plusieurs fichiers OpenAPI, incluez le chemin du fichier dans votre référence pour garantir que Mintlify trouve le bon document OpenAPI. Si vous n’avez qu’un seul fichier OpenAPI, Mintlify le détectera automatiquement.
Cette approche fonctionne que vous ayez ou non défini une spécification OpenAPI par défaut dans votre navigation. Vous pouvez référencer n’importe quel endpoint depuis n’importe quelle spécification OpenAPI en incluant le chemin du fichier dans le frontmatter.
Si vous voulez référencer un fichier OpenAPI externe, ajoutez l’URL du fichier à votre docs.json.
---
title: "Get users"
description: "Returns all plants from the system that the user has access to"
openapi: "/path/to/openapi-1.json GET /users"
deprecated: true
version: "1.0"
---
La méthode et le chemin doivent correspondre exactement à la définition dans votre spécification OpenAPI. Si l’endpoint n’existe pas dans le fichier OpenAPI, la page sera vide.

Générer automatiquement des fichiers MDX

Utilisez notre scraper Mintlify pour générer automatiquement des pages MDX pour les documents OpenAPI volumineux.
Votre document OpenAPI doit être valide, sinon les fichiers ne seront pas générés automatiquement.
Le scraper génère :
  • Une page MDX pour chaque opération dans le champ paths de votre document OpenAPI.
  • Si votre document OpenAPI est en version 3.1+, une page MDX pour chaque opération dans le champ webhooks de votre document OpenAPI.
  • Un tableau d’entrées de navigation que vous pouvez ajouter à votre docs.json.
1

Générer des fichiers `MDX`.

npx @mintlify/scraping@latest openapi-file <path-to-openapi-file>
2

Spécifier un dossier de sortie.

npx @mintlify/scraping@latest openapi-file <path-to-openapi-file> -o api-reference
Ajoutez l’option -o pour spécifier un dossier où créer les fichiers. Si aucun dossier n’est spécifié, les fichiers seront créés dans le répertoire de travail.

Créer des fichiers MDX pour les schémas OpenAPI

Vous pouvez créer des pages individuelles pour n’importe quel schéma OpenAPI défini dans le champ components.schemas d’un document OpenAPI :
---
openapi-schema: OrderItem
---

Webhooks

Les webhooks sont des rappels HTTP que votre API envoie pour informer des systèmes externes lorsqu’un événement survient. Les webhooks sont pris en charge dans les documents OpenAPI 3.1+.

Définir des webhooks dans votre spécification OpenAPI

Ajoutez un champ webhooks à votre document OpenAPI, en plus du champ paths. Pour plus d’informations sur la définition des webhooks, consultez Webhooks dans la documentation OpenAPI.

Référencer des webhooks dans des fichiers MDX

Lors de la création de pages MDX pour des webhooks, utilisez webhook au lieu de méthodes HTTP comme GET ou POST :
---
title: "Exemple de webhook"
description: "Déclenché lorsqu’un événement survient"
openapi: "path/to/openapi-file webhook example-webhook-name"
---
Le nom du webhook doit correspondre exactement à la clé définie dans le champ webhooks de votre spécification OpenAPI.