Passer au contenu principal
Si vos pages API ne s’affichent pas correctement, consultez ces problèmes de configuration fréquents.
Dans ce scénario, il est probable que Mintlify ne trouve pas votre document OpenAPI ou que votre document OpenAPI soit invalide.L’exécution de mint dev en local devrait révéler une partie de ces problèmes.Pour vérifier que votre document OpenAPI passe la validation :
  1. Rendez-vous sur cet outil de validation
  2. Passez à l’onglet « Validate text »
  3. Collez votre document OpenAPI
  4. Cliquez sur « Validate it! »
Si la zone de texte qui apparaît en dessous a une bordure verte, votre document a bien été validé. C’est exactement le paquet de validation que Mintlify utilise pour valider les documents OpenAPI ; si votre document est validé ici, il y a de fortes chances que le problème se situe ailleurs.Par ailleurs, Mintlify ne prend pas en charge OpenAPI 2.0. Si votre document utilise cette version de la spécification, vous pourriez rencontrer ce problème. Vous pouvez convertir votre document sur editor.swagger.io (dans Edit > Convert to OpenAPI 3) :
Capture d’écran de Swagger Editor avec le menu Edit développé et l’élément « Convert to OpenAPI 3 » mis en évidence.
Ceci est généralement dû à une faute d’orthographe du champ openapi dans la metadata de la page. Assurez-vous que la méthode HTTP et le chemin correspondent à la méthode HTTP et au chemin dans le document OpenAPI.
Mintlify résout automatiquement les différences de barre oblique finale entre votre référence openapi et la spécification OpenAPI. Par exemple, GET /users/{id}/ correspond à un chemin de spécification /users/{id}.
Voici un exemple de la façon dont cela peut mal tourner :
get-user.mdx
openapi.yaml
Notez que le chemin dans le champ openapi indique /user/{id} (au singulier), alors que le chemin dans le document OpenAPI est /users/{id} (au pluriel).Un autre problème fréquent est une erreur dans le nom de fichier. Si vous indiquez un document OpenAPI précis dans le champ openapi, assurez-vous que le nom de fichier est correct. Par exemple, si vous avez deux documents OpenAPI openapi/v1.json et openapi/v2.json, vos metadata pourraient ressembler à ceci :
api-reference/v1/users/get-user.mdx
Si vous avez configuré un domain personnalisé, le problème peut venir de votre reverse proxy. Par défaut, les requêtes effectuées via le bac à sable d’API commencent par une requête POST vers le chemin /_mintlify/api/request sur le site de documentation. Si vous configurez votre reverse proxy pour n’autoriser que les requêtes GET, alors toutes ces requêtes échouent. Pour corriger cela, configurez votre reverse proxy pour autoriser les requêtes POST vers le chemin /_mintlify/api/request.Sinon, si votre reverse proxy empêche l’acceptation des requêtes POST, vous pouvez configurer Mintlify pour envoyer les requêtes directement à votre backend avec le paramètre api.playground.proxy dans le docs.json, comme décrit dans la documentation des paramètres. Avec cette configuration, vous devez configurer CORS sur votre serveur, car les requêtes proviennent directement des navigateurs des utilisateurs plutôt que de passer par votre proxy.
Une erreur CORS survient lorsque votre navigateur bloque une requête cross-origin parce que la réponse ne contient pas les en-têtes requis. Vous pouvez identifier une erreur CORS dans la console développeur de votre navigateur : recherchez des messages tels que Access-Control-Allow-Origin manquant ou blocked by CORS policy.Les erreurs CORS n’affectent que les requêtes qui vont directement du navigateur de l’utilisateur à votre API. Par défaut, Mintlify fait transiter les requêtes du bac à sable d’API par /_mintlify/api/request, si bien que la plupart des sites ne rencontrent pas de problèmes CORS. Vous rencontrez généralement des erreurs CORS lorsque :
  • Vous avez défini api.playground.proxy sur false dans votre docs.json, ce qui contourne le proxy Mintlify.
  • Vous avez configuré une URL api.playground.proxy personnalisée qui pointe directement vers votre backend.
Pour corriger les erreurs CORS, configurez votre serveur API afin qu’il renvoie les en-têtes de réponse suivants pour les requêtes provenant de l’origine de votre site de documentation :
  • Access-Control-Allow-Origin : l’origine de votre site de documentation (par exemple, https://docs.your-site.com) ou * pour les API publiques.
  • Access-Control-Allow-Methods : les méthodes HTTP prises en charge par votre API (par exemple, GET, POST, PUT, DELETE, OPTIONS).
  • Access-Control-Allow-Headers : les en-têtes envoyés par vos requêtes (par exemple, Content-Type, Authorization).
Votre serveur doit également gérer les requêtes préliminaires OPTIONS. Si vous ne pouvez pas modifier votre serveur API, supprimez le paramètre api.playground.proxy pour que les requêtes soient à nouveau acheminées via le proxy Mintlify.
Si vous utilisez une configuration de navigation OpenAPI, mais que les pages ne sont pas générées, vérifiez ces problèmes courants :
  1. Spécification OpenAPI par défaut manquante : assurez-vous d’avoir un champ openapi défini pour l’élément de navigation :
  1. Héritage de la spécification OpenAPI : Si vous utilisez une navigation imbriquée, assurez-vous que les groupes enfants héritent de la bonne spécification OpenAPI ou définissent la leur.
  2. Problèmes de validation : Utilisez mint validate pour vérifier que votre document OpenAPI est valide.
  1. Opérations masquées : Les opérations marquées x-hidden: true dans votre spécification OpenAPI n’apparaîtront pas dans la navigation générée automatiquement.
  2. Opérations invalides : Les opérations comportant des erreurs de validation dans la spécification OpenAPI peuvent être ignorées. Vérifiez votre document OpenAPI pour détecter les erreurs de syntaxe.
  3. Inclusion manuelle vs automatique : Si vous faites référence à des endpoints depuis une spécification OpenAPI, seules les opérations explicitement référencées apparaîtront dans la navigation. Aucune autre page ne sera ajoutée automatiquement. Cela inclut les opérations référencées dans des éléments enfants de la navigation.
Lorsqu’on combine des opérations OpenAPI avec des pages de documentation classiques dans navigation :
  1. Conflits de fichiers : Vous ne pouvez pas avoir à la fois un fichier MDX et une entrée de navigation pour la même opération. Par exemple, si vous avez get-users.mdx, n’incluez pas aussi “GET /users” dans votre navigation. Si vous devez avoir un fichier qui partage un nom avec une opération, utilisez l’extension x-mint pour le point de terminaison afin que le href pointe vers un autre emplacement.
  2. Résolution des chemins : Les entrées de navigation qui ne correspondent pas aux opérations OpenAPI sont traitées comme des chemins de fichiers. Assurez-vous que vos fichiers MDX existent aux emplacements attendus.
  3. Sensibilité à la casse : La correspondance des opérations OpenAPI est sensible à la casse. Assurez-vous que les méthodes HTTP sont en majuscules dans les entrées de navigation.