Ajouter un fichier de spécification OpenAPI
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.
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.Décrivez votre API
- Guide OpenAPI de Swagger pour apprendre la syntaxe d’OpenAPI.
- Sources Markdown de la spécification OpenAPI pour consulter les détails de la dernière version de la spécification OpenAPI.
- Swagger Editor pour modifier, valider et déboguer votre document OpenAPI.
- Mint CLI pour valider votre document OpenAPI avec la commande :
mint validate.
Le guide OpenAPI de Swagger porte sur OpenAPI v3.0, mais la quasi-totalité des informations s’applique à v3.1. Pour en savoir plus sur les différences entre v3.0 et v3.1, consultez l’article du blog OpenAPI Migrating from OpenAPI 3.0 to 3.1.0.
Spécifiez l’URL de base de votre API
servers à votre spécification OpenAPI avec l’URL de base de votre API.
/users/{id} ou / identifient les différents points de terminaison (endpoints) d’API. L’URL 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 de la documentation OpenAPI.
Le bac à sable de l’API 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 l’API utilise le mode simple, puisqu’il 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 pour un chemin ou une opération donnés.
Configurer les téléversements de fichiers
contentMediaType binaire. Le playground de l’API reconnaît le champ comme un sélecteur de fichier et l’envoie dans une requête multipart/form-data.
Utilisez cette configuration lorsqu’un endpoint accepte un fichier dans une requête multipart. Vous pouvez également utiliser contentEncoding pour décrire le codage du contenu du fichier. Une valeur contentEncoding sans contentMediaType binaire reste un champ texte. Pour les fichiers encodés en base64, définissez contentEncoding sur base64 ou base64url. Le playground traite ces deux valeurs comme un fichier base64. Pour les autres valeurs ou en l’absence de valeur, le playground utilise le traitement des fichiers binaires.
application/octet-stream, les images, l’audio, la vidéo, les PDF et les archives. Le playground de l’API ne traite pas les types structurés tels que application/json comme des téléversements de fichiers. Les anciennes valeurs format: "binary" et format: "base64" restent prises en charge.
Spécifier l’authentification
securitySchemes et security dans votre spécification OpenAPI. Les descriptions d’API et l’environnement de test API ajoutent des champs d’authentification en fonction des paramètres de sécurité de votre spécification OpenAPI.
1
Définissez votre méthode d’authentification.
Ajoutez un champ
securitySchemes pour définir la manière dont les utilisateurs s’authentifient.Cet exemple montre une configuration pour l’authentification de type Bearer.2
Appliquez l’authentification à vos endpoints.
Ajoutez un champ
security pour rendre l’authentification obligatoire.- Clés d’API : pour les clés transmises via l’en-tête, les paramètres de requête ou les cookies.
- Bearer : pour les jetons JWT ou OAuth.
- Basic : pour le nom d’utilisateur et le mot de passe.
security pour une opération donnée.
Pour plus d’informations sur la définition et l’application de l’authentification, consultez la section Authentication de la documentation OpenAPI.
Définir des valeurs par défaut pour les schémas de sécurité
x-default sur un schéma de sécurité pour pré-remplir le champ d’authentification dans le playground de l’API. Cela est utile pour fournir des valeurs d’exemple ou des identifiants de test qui aident les utilisateurs à démarrer rapidement.
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 d’authentification du playground. Le pré-remplissage pour les schémas de sécurité s’applique de manière inconditionnelle et ne nécessite aucune configuration supplémentaire.
Vous pouvez également utiliser x-default sur d’autres propriétés de schéma dans votre spécification OpenAPI pour définir une valeur par défaut dans le playground de l’API 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 est défini sur true dans votre docs.json.
Le pré-remplissage depuis
x-default sur des propriétés de schéma de type array n’est pas pris en charge actuellement dans le playground de l’API, même lorsque api.examples.prefill est activé.Transformez votre spécification avec des overlays
openapi dans le frontmatter et mint validate utilisent tous le document transformé. Les versions 1.0 et 1.1 de la spécification Overlay sont prises en charge.
Créer un document d’overlay
overlay, un objet info avec un title et une version, et un tableau actions. Chaque action sélectionne des nœuds avec une expression target au format JSONPath RFC 9535 et applique un modificateur :
update: fusionne une valeur dans chaque nœud ciblé. Les objets fusionnent de manière récursive, les tableaux ajoutent la valeur à la fin et les primitives sont remplacées.remove: supprime chaque nœud ciblé lorsque défini surtrue.copy: copie le nœud sélectionné par une autre expression JSONPath dans chaque nœud ciblé. Nécessite Overlay 1.1.
docs-overlay.yaml
extends associe un overlay à une spécification pour la découverte automatique. Définissez-le sur un chemin relatif au fichier d’overlay, ou sur l’URL exacte que votre docs.json utilise pour une spécification hébergée.
Référencer les overlays dans votre docs.json
openapi, qui fonctionne partout où openapi est accepté, y compris à l’intérieur de tableaux. Les overlays s’appliquent dans l’ordre où vous les listez.
https. Référencer la même spécification avec des listes overlays différentes à plusieurs endroits fait échouer la génération.
Découverte automatique des overlays
overlay de premier niveau est traité comme un document d’overlay. Si son champ extends correspond à l’une de vos spécifications, l’overlay s’applique automatiquement à cette spécification. Les overlays découverts automatiquement s’appliquent dans l’ordre alphabétique de leurs chemins de fichier. Les overlays sans champ extends ne s’appliquent jamais automatiquement.
Une liste overlays explicite remplace la découverte automatique pour cette spécification. Définissez "overlays": [] pour désactiver tous les overlays d’une spécification, y compris ceux découverts automatiquement.
Les overlays explicites et découverts automatiquement échouent différemment. Si un overlay explicite ne peut pas être chargé ou appliqué, la spécification échoue à la validation et le déploiement signale une erreur de spécification. Si un overlay découvert automatiquement échoue, il est ignoré et la spécification est publiée sans lui.
Renommer un chemin
update, copiez-y l’élément de chemin existant avec copy, puis supprimez l’ancien chemin avec remove.
rename-overlay.yaml
openapi: "POST /credit/accounts".
Dans mint dev, la modification ou la suppression d’un fichier d’overlay reconstruit les spécifications concernées. mint validate et mint openapi-check valident le document transformé, de sorte que les erreurs référencent votre spécification après l’application des overlays.
Permettez aux visiteurs de télécharger votre spécification
"download-spec" à contextual.options dans votre docs.json :
api-specs.zip. Sur les déploiements protégés par auth ou userAuth, seuls les lecteurs authentifiés peuvent télécharger la spécification.
Personnalisez les pages de vos endpoints
x-mint à votre spécification OpenAPI. L’extension x-mint vous offre un contrôle supplémentaire sur la manière dont votre documentation d’API se génère et s’affiche.
Métadonnées
x-mint: metadata à n’importe quelle opération. Vous pouvez utiliser n’importe quel champ de métadonnées valide dans le front matter MDX, à l’exception de openapi.
playground et groups :
admin.
Contenu
x-mint: content. L’extension x-mint: content est compatible avec tous les composants MDX de Mintlify ainsi que leur mise en forme.
href
x-mint: href. Lorsque x-mint: href est présent, la page d’API générée utilise l’URL spécifiée au lieu de l’URL par défaut générée automatiquement.
Réduire les champs du playground
x-mint: playground avec expand: false sur n’importe quelle opération. Les sections de requête telles que Authorization, Headers, Query, Path et Body restent toujours développées, et l’objet body de premier niveau reste développé, mais les champs de type objet imbriqués à l’intérieur commencent réduits afin que les lecteurs ne développent que les champs avec lesquels ils souhaitent interagir. Si expand n’est pas défini, les champs de type objet sont développés par défaut.
Pastilles de paramètre
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.
api.params.post 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.
{ "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é.
Noms d’affichage des groupes
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.
user-management comme segment de chemin.
Remplir automatiquement les pages d’API
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, soit en tant que sections API dédiées, soit aux côtés d’autres 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.
Les pages d’endpoint générées ont les métadonnées par défaut suivantes :
title: le champsummaryde l’opération, s’il est présent. S’il n’y a pas desummary, Mintlify génère le titre à partir de la méthode HTTP et de l’endpoint.description: le champdescriptionde l’opération, s’il est présent.version: la valeurversionde l’ancre ou de l’onglet parent, si elle est présente.deprecated: le champdeprecatedde l’opération. Sitrue, une étiquette « obsolète » apparaît à côté du titre de l’endpoint dans la navigation latérale et sur la page de l’endpoint.
- 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.
- Endpoints sélectifs : référencez des endpoints spécifiques dans votre navigation, aux côtés d’autres pages.
Sections d’API dédiées
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.
Le champ
directory est facultatif et indique où Mintlify stocke les pages d’API générées dans votre dépôt de documentation. S’il n’est pas défini, le répertoire par défaut est api-reference à la racine de votre dépôt.Points de terminaison sélectifs
Définir une spécification OpenAPI par défaut
pages.
METHOD /path génère une page d’API pour ce point de terminaison à partir de la spécification OpenAPI par défaut.
Héritage de la spécification OpenAPI
Points de terminaison individuels
Créer des pages MDX à partir de votre spécification OpenAPI
- Documenter les endpoints avec le champ
openapidans le frontmatter. - Documenter les modèles de données avec le champ
openapi-schemadans le frontmatter.
Documenter les endpoints
openapi dans le frontmatter.
docs.json.
Générer automatiquement des pages d’endpoint
Documenter les modèles de données
components.schemas de votre spécification OpenAPI en utilisant le champ openapi-schema dans le frontmatter.
Webhooks
webhooks à votre document OpenAPI, en parallèle du champ paths.
Pour en savoir plus sur la définition des webhooks, consultez la section Webhooks de la documentation OpenAPI.
Pour créer une page MDX pour un webhook (OpenAPI 3.1+), utilisez webhook au lieu d’une méthode HTTP :
webhooks de votre spécification OpenAPI.
Callbacks
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 de la documentation OpenAPI.
Exemple de définition de callback sur une opération :