Software-Engineering-Teams haben häufig Schwierigkeiten, die API-Dokumentation mit sich schnell verändernden Codebasen synchron zu halten, was zu fehlerhaften Endpunkten, fehlenden Parametern und frustrierten Entwicklern führt. Die Einführung einer Docs-as-Code-Methodik durch die Kombination von Mintlify mit GitHub ermöglicht es Teams, Dokumentation mit derselben technischen Sorgfalt wie Anwendungscode zu behandeln. Durch das Hosten von Dokumentationsdateien direkt in Git-Repositories, das Konfigurieren automatisierter Deployments über die Mintlify GitHub App und die Integration von OpenAPI-Spezifikationen in CI-Pipelines (Continuous Integration) können Engineering-Organisationen automatisch responsive, interaktive Entwicklerportale generieren. Dieses Setup eliminiert manuelle Dokumentationsaktualisierungen, stellt sicher, dass API-Referenzen mit dem bereitgestellten Code übereinstimmen, und etabliert einen nahtlosen Review-Workflow über Pull-Request-Vorschauen.
Das Docs-as-Code-Architekturkonzept von Mintlify und GitHub verstehen
Mintlify basiert auf dem Docs-as-Code-Prinzip, bei dem Dokumentationsquelldateien in einem GitHub-Repository neben oder zusammen mit dem Produktionscode liegen. Anstatt sich auf statische Content-Management-Systeme (CMS) oder separate Wiki-Software zu verlassen, wird die Dokumentation mithilfe von Markdown, MDX-Komponenten und strukturierten Konfigurationsdateien definiert.
Die Architektur umfasst vier Kernkomponenten:
- Konfiguration (
mint.json): Die zentrale Konfigurationsdatei, die Site-Metadaten, Markenidentität, Navigationsbäume, Sucheinstellungen und Links zu externen oder internen OpenAPI-Spezifikationen definiert. - Inhaltsdateien (
.mdx): Erweiterte Markdown-Dateien, die Standardtextformatierung mit interaktiven React-ähnlichen Komponenten kombinieren (wie Parametertabellen, Tabs, ausklappbaren Akkordeons und Code-Gruppen). - OpenAPI-Spezifikationen (
openapi.json/openapi.yaml): Standardisierte, maschinenlesbare Beschreibungen von REST-APIs, die Mintlify analysiert, um interaktive Endpunkt-Referenzen und "Try It"-Anfrage-Playgrounds zu generieren. - Mintlify GitHub-Integration: Eine native GitHub App, die auf Repository-Webhooks lauscht, automatisch Cloud-Builds auslöst, wenn Änderungen in den Produktions-Branch gemergt werden, und Vorschauumgebungen für Pull Requests generiert.
+-----------------------------------------------------------------------+
| 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) |
+-----------------------------------------------------------------------+
Einrichten des Dokumentations-Repositories
Engineering-Teams können Mintlify entweder in einem dedizierten Dokumentations-Repository oder innerhalb eines bestehenden Anwendungs-Monorepos implementieren. Ein klarer Verzeichnisaufbau gewährleistet eine übersichtliche Navigation und saubere CI/CD-Grenzen.
1. Repository-Struktur
Ein standardmäßiger Mintlify-Dokumentations-Workspace folgt diesem Dateiaufbau:
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. Konfiguration von mint.json
Die Datei mint.json steuert das visuelle Theme, die Navigation auf oberster Ebene und die Erfassung von API-Referenzen. Teams konfigurieren das navigation-Array, um konzeptionelle Leitfäden zu organisieren und in der OpenAPI-Spezifikation definierte API-Endpunkte automatisch zu verknüpfen:
{
"$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. Lokale Entwicklung mit der Mintlify CLI
Entwickler sollten Dokumentationsänderungen lokal überprüfen, bevor sie zu GitHub gepusht werden. Die Mintlify CLI stellt einen lokalen Entwicklungsserver mit Hot-Reloading bereit:
- Installieren Sie die CLI global oder führen Sie sie über
npxaus:npm install -g mint - Navigieren Sie zu dem Verzeichnis, das
mint.jsonenthält, und starten Sie den Entwicklungsserver:mint dev - Öffnen Sie
http://localhost:3000im Browser. Alle Änderungen an.mdx-Dateien, anmint.jsonoder am OpenAPI-Schema werden sofort neu geladen.
Automatisierung von Deployments mit der Mintlify GitHub App
Der zentrale Automatisierungsmechanismus zur Verbindung von GitHub mit Mintlify ist die Mintlify GitHub App. Nach der Installation ersetzt sie manuelle Build- und Deployment-Skripte.
Installation und Branch-Konfiguration
- Melden Sie sich im Mintlify-Dashboard an und navigieren Sie zu Settings > Git Settings.
- Klicken Sie auf Install GitHub App und wählen Sie die Organisation sowie das Ziel-Repository aus.
- Konfigurieren Sie den Deployment-Branch (Deployment Branch, typischerweise
main). Wann immer Commits in diesen Branch gepusht oder gemergt werden, löst Mintlify einen Produktions-Build aus. - Wenn sich Ihre Dokumentation in einem Unterordner eines Monorepos befindet (z. B.
/docs), aktivieren Sie den Unterverzeichnis-Schalter und geben Sie den Pfad an. Dadurch werden Builds so eingeschränkt, dass Mintlify nur dann ausgelöst wird, wenn sich Dateien im Dokumentationsordner ändern.
Pull-Request-Vorschauen und Review-Gates
Wenn ein Entwickler einen Pull Request öffnet, der Dokumentationsdateien ändert, führt die GitHub App automatisch eine Build-Prüfung durch und kommentiert den PR mit einer eindeutigen Vorschau-URL:
- Visuelle Qualitätssicherung (Visual QA): Reviewer können gerenderte MDX-Komponenten, Formatierungen und interaktive Playgrounds vor dem Mergen direkt auf der Vorschau-Domain prüfen.
- Syntaxvalidierung: Wenn ein fehlerhaftes Markdown-Element, ein defekter interner Link oder ein ungültiges JSON-Schema eingefügt wird, schlägt die Build-Prüfung fehl, wodurch verhindert wird, dass der PR in
maingemergt wird. - Funktionsübergreifende Zusammenarbeit: Technische Redakteure, Produktmanager und Entwickler können Textänderungen in derselben Benutzeroberfläche überprüfen, die auch für Code-Reviews verwendet wird.
Automatisierung von OpenAPI-Spezifikationsupdates über GitHub Actions
Während konzeptionelle Anleitungen manuell in MDX verfasst werden, sollte die API-Referenzdokumentation immer direkt aus dem Quellcode abgeleitet werden. Wenn Backend-Entwickler Endpunkt-Routen, Request-Payloads oder Response-Schemas ändern, muss eine automatisierte Pipeline die OpenAPI-Spezifikationsdatei im Dokumentationsverzeichnis aktualisieren.
Synchronisieren von Spezifikationen in einem Monorepo
In einem Monorepo, in dem der API-Service-Code (z. B. FastAPI, Express, NestJS oder Go) neben der Dokumentation liegt, kann GitHub Actions bei jedem Commit die neueste Spezifikation generieren und den Dokumentationsordner auf dem neuesten Stand halten.
Der folgende GitHub Actions-Workflow demonstriert das Extrahieren eines OpenAPI-Schemas aus einem Backend-Service und das Auslösen eines Mintlify-Deployments:
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 }}"
Multi-Repository-Synchronisationsarchitektur
In Microservice-Architekturen, bei denen Backend-Services in separaten Repositories vom zentralen Dokumentationsportal liegen, nutzen Teams Repository-Dispatch-Events oder direkte API-Aufrufe:
- Service-CI: Wenn der Backend-Service in seinem eigenen Repository gebaut wird, generiert die CI die Datei
openapi.json. - Dispatch oder PR: Der Workflow verwendet ein persönliches GitHub-Zugriffstoken, um ein Webhook-Event an das Dokumentations-Repository zu senden, das einen automatisierten Pull Request mit der aktualisierten Spezifikation öffnet.
- Validierung und Merge: Das Dokumentations-Repository führt ein Schema-Linting durch, generiert eine Mintlify-Vorschau und mergt das Update nach Genehmigung.
Best Practices für die Automatisierung von API-Dokumentationen
Um bei wachsenden Entwicklungsteams eine hohe Dokumentationsqualität aufrechtzuerhalten, sollten folgende Betriebsstandards implementiert werden:
| Best Practice | Implementierungsmechanismus | Nutzen |
|---|---|---|
| Schema-Validierung | Vor dem Mergen mint validate oder Spectral-Linter in der CI ausführen. | Verhindert, dass fehlerhafte OpenAPI-Schemas oder ungültige Parametertypen in die Produktion gelangen. |
| Atomare Code- und Dokumentations-PRs | API-Codeänderungen und zugehörige Dokumentationsaktualisierungen im selben PR verlangen. | Beseitigt die Verzögerung zwischen der Bereitstellung eines Features und der Veröffentlichung seiner Dokumentation. |
| Sicherheit von Umgebungsvariablen | Niemals API-Schlüssel oder Produktionsgeheimnisse in OpenAPI-Serverblöcke committen. | Schützt die Infrastruktur und ermöglicht es Benutzern gleichzeitig, Testschlüssel in interaktiven Playgrounds einzugeben. |
| Endpunkt-Tagging | OpenAPI-Pfade mit einheitlichen tags in den Code-Annotationen organisieren. | Mintlify gruppiert Endpunkte basierend auf den Tags automatisch in strukturierte Navigationsabschnitte. |
| Changelog-Automatisierung | Versionshinweise in docs/changelog.mdx mithilfe von GitHub Releases oder Git-Tags generieren. | Hält Anwender über Abkündigungen, Anpassungen von Ratenbegrenzungen und neue Funktionen auf dem Laufenden. |
Indem API-Dokumentation als Code behandelt wird, Quelldateien in GitHub gehostet werden und Deployment- sowie Spezifikationspipelines automatisiert werden, können Software-Engineering-Teams Dokumentationsabweichungen (Drift) beseitigen, das Entwickler-Onboarding beschleunigen und ein interaktives API-Portal bereitstellen, das mit jedem Release präzise und aktuell bleibt.