ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Comment les équipes d'ingénierie logicielle configurent et automatisent la documentation d'API avec Mintlify et GitHub

365Finds Editorial
11 430 articles Wiki répertoriés

Utilisez 365 Wiki avec votre IA

Copiez le prompt ci-dessous, collez-le dans l’IA que vous utilisez déjà, puis posez directement votre question.

Télécharger le Skill complet

Commencez par essayer le prompt. Si vous utilisez souvent 365 Wiki, installez le Skill 365Wiki complet pour ne plus avoir à le coller. Sans IA habituelle, les versions web de Gemini ou Microsoft Copilot conviennent aussi.

Les équipes d'ingénierie logicielle peinent fréquemment à maintenir la documentation de leurs API synchronisée avec des bases de code en constante évolution, ce qui entraîne des endpoints cassés, des paramètres manquants et de la frustration chez les développeurs. Adopter une méthodologie docs-as-code en associant Mintlify à GitHub permet aux équipes de traiter la documentation avec la même rigueur d'ingénierie que le code applicatif. En hébergeant les fichiers de documentation directement dans des dépôts Git, en configurant des déploiements automatisés via l'application GitHub Mintlify et en intégrant les spécifications OpenAPI dans les pipelines d'intégration continue (CI), les organisations d'ingénierie peuvent générer automatiquement des portails développeurs réactifs et interactifs. Cette configuration élimine les mises à jour manuelles de la documentation, garantit que les références d'API correspondent au code déployé et établit un flux de travail de révision fluide grâce aux prévisualisations des pull requests.

Comprendre l'architecture Docs-as-Code de Mintlify et GitHub

Mintlify fonctionne selon le principe du docs-as-code, où les fichiers sources de documentation résident dans un dépôt GitHub aux côtés du code de production ou à proximité immédiate. Au lieu de s'appuyer sur des systèmes de gestion de contenu (CMS) statiques ou des wikis isolés, la documentation est définie à l'aide de Markdown, de composants MDX et de fichiers de configuration structurés.

L'architecture comprend quatre composants fondamentaux :

+-----------------------------------------------------------------------+
|                           GitHub Repository                           |
|                                                                       |
|  +----------------+  +--------------------+  +---------------------+  |
|  |   mint.json    |  |  docs/**/*.mdx     |  |    openapi.json     |  |
|  | (Site Config)  |  | (Guides & Pages)   |  | (API Specification) |  |
|  +----------------+  +--------------------+  +---------------------+  |
+-----------------------------------------------------------------------+
            |                                         ^
            | (Push to main / Open PR)                | (CI Auto-Sync)
            v                                         |
+-----------------------+                 +-----------------------+
|  Mintlify GitHub App  |                 |  GitHub Actions CI/CD |
|  - Validates syntax   |                 |  - Extract spec from  |
|  - Builds static docs |                 |    backend code       |
|  - Posts PR preview   |                 |  - Commit / Trigger   |
+-----------------------+                 +-----------------------+
            |
            v
+-----------------------------------------------------------------------+
|                      Production Documentation Site                    |
|         (Interactive Developer Portal & Live API Playground)          |
+-----------------------------------------------------------------------+

Configuration du dépôt de documentation

Les équipes d'ingénierie peuvent implémenter Mintlify soit dans un dépôt de documentation dédié, soit au sein d'un monorepo d'application existant. Partir d'une structure de répertoires claire garantit une navigation intuitive et des limites nettes pour la CI/CD.

1. Structure du dépôt

Un espace de travail de documentation Mintlify standard suit cette disposition de fichiers :

my-docs-repo/
├── .github/
│   └── workflows/
│       └── sync-api-spec.yml
├── docs/
│   ├── api-reference/
│   │   ├── authentication.mdx
│   │   └── errors.mdx
│   ├── guides/
│   │   ├── quickstart.mdx
│   │   └── rate-limits.mdx
│   └── openapi.json
└── mint.json

2. Configuration de mint.json

Le fichier mint.json contrôle le thème visuel, la navigation de premier niveau et l'ingestion des références d'API. Les équipes configurent le tableau navigation pour organiser les guides conceptuels et lier automatiquement les endpoints d'API définis dans la spécification OpenAPI :

{
  "$schema": "https://mintlify.com/schema.json",
  "name": "Acme Developer Platform",
  "logo": {
    "dark": "/logo/dark.svg",
    "light": "/logo/light.svg"
  },
  "favicon": "/favicon.svg",
  "colors": {
    "primary": "#0F52BA",
    "light": "#4B9CD3",
    "dark": "#002D62"
  },
  "navigation": [
    {
      "group": "Getting Started",
      "pages": [
        "docs/guides/quickstart",
        "docs/guides/rate-limits"
      ]
    },
    {
      "group": "API Reference",
      "pages": [
        "docs/api-reference/authentication",
        "docs/api-reference/errors"
      ],
      "openapi": "docs/openapi.json"
    }
  ],
  "api": {
    "baseUrl": "https://api.acme.com/v1"
  }
}

3. Développement local avec la CLI Mintlify

Les ingénieurs doivent vérifier les modifications de documentation localement avant de les pousser sur GitHub. La CLI Mintlify fournit un serveur de développement local avec rechargement à chaud :

  1. Installez la CLI globalement ou exécutez-la via npx :
    npm install -g mint
    
  2. Accédez au répertoire contenant mint.json et lancez le serveur de développement :
    mint dev
    
  3. Ouvrez http://localhost:3000 dans un navigateur. Toute modification apportée aux fichiers .mdx, à mint.json ou au schéma OpenAPI est rechargée instantanément.

Automatisation des déploiements avec l'application GitHub Mintlify

Le mécanisme d'automatisation central reliant GitHub à Mintlify est l'application GitHub Mintlify. Une fois installée, elle remplace les scripts manuels de build et de déploiement.

Installation et configuration des branches

  1. Connectez-vous au tableau de bord Mintlify et accédez à Settings > Git Settings.
  2. Cliquez sur Install GitHub App et sélectionnez l'organisation ainsi que le dépôt cible.
  3. Configurez la branche de déploiement (Deployment Branch, généralement main). Chaque fois que des commits sont poussés ou fusionnés dans cette branche, Mintlify déclenche un build de production.
  4. Si votre documentation réside dans un sous-dossier d'un monorepo (comme /docs), activez l'option de sous-répertoire et spécifiez le chemin. Cela restreint les builds afin que Mintlify ne se déclenche que lorsque des fichiers du dossier de documentation sont modifiés.

Prévisualisations des Pull Requests et contrôles de revue

Lorsqu'un ingénieur ouvre une pull request modifiant des fichiers de documentation, l'application GitHub exécute automatiquement une vérification de build et publie un commentaire sur la PR avec une URL de prévisualisation unique :

Automatisation des mises à jour des spécifications OpenAPI via GitHub Actions

Alors que les guides conceptuels sont rédigés manuellement en MDX, la documentation de référence d'API doit toujours dériver directement du code source. Lorsque les ingénieurs backend modifient des routes d'endpoints, des charges utiles de requêtes ou des schémas de réponse, un pipeline automatisé doit mettre à jour le fichier de spécification OpenAPI dans le répertoire de documentation.

Synchronisation des spécifications dans un monorepo

Dans un monorepo où le code du service d'API (par exemple FastAPI, Express, NestJS ou Go) réside aux côtés de la documentation, GitHub Actions peut générer la dernière spécification à chaque commit et maintenir le dossier de documentation à jour.

Le workflow GitHub Actions suivant illustre l'extraction d'un schéma OpenAPI à partir d'un service backend et le déclenchement d'un déploiement Mintlify :

name: Sync OpenAPI Spec and Deploy Docs

on:
  push:
    branches:
      - main
    paths:
      - 'services/api/**'
      - 'docs/**'

jobs:
  sync-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4

      - name: Set up Python Environment
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

      - name: Install Dependencies
        run: |
          pip install -r services/api/requirements.txt

      - name: Generate OpenAPI Specification
        run: |
          python -c "import json; from services.api.main import app; print(json.dumps(app.openapi()))" > docs/openapi.json

      - name: Check for Spec Changes
        id: git-diff
        run: |
          git diff --quiet docs/openapi.json || echo "changed=true" >> $GITHUB_OUTPUT

      - name: Commit and Push Updated Spec
        if: steps.git-diff.outputs.changed == 'true'
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add docs/openapi.json
          git commit -m "chore(docs): auto-update openapi.json from backend"
          git push origin main

      - name: Trigger Mintlify Deployment
        run: |
          curl -X POST https://api.mintlify.com/api/deploy \
            -H "Authorization: Bearer ${{ secrets.MINTLIFY_API_TOKEN }}"

Architecture de synchronisation multi-dépôts

Dans les architectures de microservices où les services backend résident dans des dépôts distincts du portail de documentation centralisé, les équipes utilisent des événements de repository dispatch ou des appels d'API directs :

  1. CI du service : Lorsque le service backend se compile dans son propre dépôt, la CI génère openapi.json.
  2. Dispatch ou PR : Le workflow utilise un jeton d'accès personnel GitHub pour envoyer un événement de webhook au dépôt de documentation, ouvrant une pull request automatisée avec la spécification mise à jour.
  3. Validation et fusion : Le dépôt de documentation exécute le linting du schéma, génère une prévisualisation Mintlify et fusionne la mise à jour après approbation.

Bonnes pratiques pour l'automatisation de la documentation d'API

Pour maintenir une documentation de haute qualité au sein d'équipes d'ingénierie en pleine croissance, mettez en œuvre les standards opérationnels suivants :

PratiqueMécanisme de mise en œuvreBénéfice
Validation de schémaExécuter mint validate ou des linters Spectral en CI avant la fusion.Empêche les schémas OpenAPI corrompus ou les types de paramètres invalides d'atteindre la production.
PRs atomiques code et documentationExiger les modifications du code d'API et les mises à jour de documentation correspondantes dans la même PR.Élimine le décalage entre le déploiement d'une fonctionnalité et la publication de sa documentation.
Sécurité des variables d'environnementNe jamais commiter de clés d'API ou de secrets de production dans les blocs de serveurs OpenAPI.Protège l'infrastructure tout en permettant aux utilisateurs de saisir des clés de test dans les bacs à sable interactifs.
Balisage des endpoints (Tagging)Organiser les routes OpenAPI avec des tags cohérents dans les annotations de code.Mintlify regroupe automatiquement les endpoints en sections de navigation structurées en fonction des tags.
Automatisation du journal des modifications (Changelog)Générer des notes de version dans docs/changelog.mdx à l'aide des GitHub Releases ou des tags Git.Maintient les utilisateurs informés des dépréciations, des ajustements de limites de débit et des nouvelles fonctionnalités.

En traitant la documentation d'API comme du code, en hébergeant les fichiers sources dans GitHub et en automatisant les pipelines de déploiement et de spécification, les équipes d'ingénierie logicielle peuvent éliminer la dérive documentaire, accélérer l'intégration des développeurs et fournir un portail d'API interactif qui reste précis à chaque version.