OpenAPI Spezifikation mit Git versionieren

Verwaltet eure OpenAPI-Spezifikation wie Code mit Versionskontrolle: Branching-Strategien, Pull-Request-Review von Spezifikationsänderungen und CI-Validierung, alles in Apidog.

Ashley Innocent

Ashley Innocent

2 June 2026

OpenAPI Spezifikation mit Git versionieren

Apidog für Unternehmen

On-Premises-Bereitstellung

SSO & RBAC

SOC 2 konform

Apidog Enterprise entdecken

Ihre OpenAPI-Spezifikation ist ein Vertrag. Wenn sie sich ändert, funktionieren Clients nicht mehr, Mocks veralten und Tests laufen gegen eine API, die nicht mehr existiert. Behandeln Sie die Spezifikation daher wie den Rest Ihres Codes: Legen Sie sie in Git ab, verzweigen Sie sie, überprüfen Sie sie und validieren Sie sie bei jeder Änderung.

Dieser Leitfaden führt Sie von Grund auf durch die OpenAPI-Versionskontrolle mit Git. Wo die Datei abgelegt wird, wie man verzweigt, worauf Prüfer in einem Spezifikations-Diff achten und wie man Änderungen direkt aus Apidog pusht. Am Ende verfügen Sie über einen Workflow, dem Ihr gesamtes Team vertrauen kann.

App herunterladen

Warum Sie Ihre OpenAPI-Spezifikation versionieren sollten

Eine Spezifikation, die in einem Wiki oder einem freigegebenen Laufwerk liegt, hat keine Historie. Sie können nicht sehen, wer den POST /orders Payload letzten Dienstag geändert hat oder warum. Git behebt das.

Legen Sie openapi.yaml unter Versionskontrolle und Sie erhalten vier Dinge kostenlos:

Dies ist die Grundlage eines Git-nativen API-Workflows: Die Spezifikation ist Quellcode, und Quellcode lebt in Git.

Wo die Spezifikationsdatei im Repository lebt

Halten Sie es einfach und vorhersehbar. Die meisten Teams legen eine einzelne openapi.yaml im Root-Verzeichnis des Repositorys oder in einem api/-Ordner ab:

my-service/
├── api/
│ └── openapi.yaml
├── src/
└── README.md

Wenn Sie mehrere Hauptversionen parallel pflegen, teilen Sie diese nach Versionen auf, mit einer Datei pro Hauptversion:

api/
├── api-v1.yaml
└── api-v2.yaml

Dies hält bahnbrechende Änderungen isoliert. api-v1.yaml bleibt für bestehende Clients eingefroren, während sich api-v2.yaml weiterentwickelt. Es macht auch Diffs kleiner und die Überprüfung schneller, da sich jede Datei aus einem bestimmten Grund ändert. Die Behandlung der Spezifikation auf diese Weise ist die Kernidee hinter API-Spezifikation als Code.

Wählen Sie eine Konvention und dokumentieren Sie diese. Das schlimmste Ergebnis sind zwei Dateien, die behaupten, „die“ Spezifikation zu sein.

Branching-Strategien für Spezifikationsänderungen

Sie benötigen kein spezielles Branching-Modell für Spezifikationen. Verwenden Sie, was Ihr Code bereits tut. Verzweigen Sie von main, nehmen Sie die Änderung vor, öffnen Sie einen PR.

Namenskonvention, die Spezifikations-Branches leicht lesbar hält:

Branch-Typ Muster Beispiel
Neuer Endpunkt api/add-<resource> api/add-refunds
Feldänderung api/change-<resource>-<field> api/change-order-status
Breaking Change api/breaking-<description> api/breaking-v2-auth
Fix / Bereinigung api/fix-<description> api/fix-pagination-schema

Das Präfix api/ signalisiert auf einen Blick: „Dieser PR berührt den Vertrag“. Prüfer und CI können danach filtern. Bei Breaking Changes ist das explizite Präfix breaking- ein Hinweis darauf, dass hier zusätzliche Aufmerksamkeit und wahrscheinlich eine Versionserhöhung erforderlich ist.

Halten Sie Branches kurzlebig. Ein Spezifikations-Branch, der zwei Wochen lang existiert, kollidiert mit den Änderungen aller anderen. Kleine, fokussierte Branches lassen sich sauber zusammenführen.

Überprüfung von Spezifikationsänderungen in einem Pull Request

Hier macht sich die Versionskontrolle bezahlt. Ein Spezifikations-PR ist eine Vertragsänderung, und Vertragsänderungen verdienen eine echte Überprüfung.

Schreiben Sie YAML auf eine Diff-freundliche Weise, damit Prüfer die Änderung lesen können und nicht mit der Formatierung kämpfen müssen:

paths:
 /orders/{orderId}:
 get:
 summary: Get an order
 parameters:
 - name: orderId
 in: path
 required: true
 schema:
 type: string
 responses:
 "200":
 description: Order found
 content:
 application/json:
 schema:
 $ref: "#/components/schemas/Order"

Konsistente Einrückung und eine Eigenschaft pro Zeile bedeuten, dass eine einzeilige Feldeinfügung als einzeiliger Diff angezeigt wird. Das ist das Ziel.

Was Prüfer überprüfen sollten:

Verlassen Sie sich bei der Erkennung von Breaking Changes eher auf Tools als auf menschliche Augen. Ein CI-Schritt (unten behandelt) kann die Spezifikation des PRs mit main vergleichen und den Build fehlschlagen lassen, wenn er eine inkompatible Änderung feststellt. Menschen übersehen diese; Diff-Tools nicht.

Committen & pushen von Apidog

Das manuelle Bearbeiten von rohem YAML funktioniert, aber ein visueller Editor mit Live-Validierung ist schneller und fängt Fehler früher ab. Apidog's Spec-First Modus bietet Ihnen eine bidirektionale Git-Synchronisierung: Bearbeiten Sie die Spezifikation in der Benutzeroberfläche, committen und pushen Sie sie in Ihr Repository, ohne das Tool zu verlassen. Ziehen Sie die Änderungen eines Teamkollegen auf die gleiche Weise zurück.

Der Workflow sieht folgendermaßen aus:

  1. Verbinden Sie Ihr Git-Repository und verweisen Sie Apidog auf die Spezifikationsdatei.
  2. Bearbeiten Sie Endpunkte, Schemas und Beispiele im visuellen Editor.
  3. Apidog schreibt sauberes, diff-freundliches YAML zurück in die Datei.
  4. Committen Sie auf einem Branch und pushen Sie, dann öffnen Sie Ihren PR wie gewohnt.

Da Apidog YAML konsistent serialisiert, bleiben Ihre Diffs klein und überprüfbar, ohne unnötige Neuordnung oder Neuformatierung. Die vollständige Einrichtung können Sie in den Apidog Spec-First Mode Docs nachlesen. Wenn die Datei bei einem bestimmten Anbieter landen soll, siehe Synchronisierung Ihrer OpenAPI-Spezifikation mit GitHub.

CI-Validierungshooks

Lassen Sie niemals eine ungültige Spezifikation in main gelangen. Integrieren Sie die Validierung in Ihre Pull-Request-Prüfungen, sodass ein gebrochener Vertrag den Build automatisch fehlschlagen lässt.

Ein minimaler GitHub Actions-Schritt:

name: Validate OpenAPI
on: [pull_request]
jobs:
 lint:
 runs-on: ubuntu-latest
 steps:
 - uses: actions/checkout@v4
 - name: Lint spec
 run: npx @redocly/cli lint api/openapi.yaml

Fügen Sie weitere Prüfungen hinzu, wenn Sie wachsen:

Diese Prüfungen laufen in Sekundenschnelle ab und fangen Fehler ab, die ein menschlicher Prüfer übersehen würde.

Best Practices

Einige Gewohnheiten sorgen dafür, dass die Spezifikations-Versionskontrolle auf Dauer gesund bleibt:

FAQ

Wie erkenne ich Breaking Changes in einer OpenAPI-Spezifikation?

Führen Sie in Ihrer CI ein Spezifikations-Diff-Tool aus, das den Pull Request mit der Version auf main vergleicht. Tools wie oasdiff klassifizieren jede Änderung als breaking, non-breaking oder unklassifiziert und können den Build bei einer breaking Änderung fehlschlagen lassen. Dies fängt entfernte Felder, neue erforderliche Parameter und geänderte Typen ab, die bei einer manuellen Überprüfung übersehen werden könnten.

Sollte ich eine OpenAPI-Datei behalten oder sie in mehrere aufteilen?

Beginnen Sie mit einer einzelnen openapi.yaml. Sie ist am einfachsten zu überprüfen und zu versionieren. Wenn die Datei groß wird oder Sie mehrere Hauptversionen parallel pflegen, teilen Sie sie nach Hauptversion (api-v1.yaml, api-v2.yaml) auf oder verwenden Sie $ref, um Schemas in separate Dateien aufzuteilen. Teilen Sie nicht zu früh; eine lesbare Datei ist besser als fünf fragmentierte.

Kann ich meine Spezifikation versionieren, ohne YAML von Hand zu schreiben?

Ja. Der Spec-First-Modus von Apidog ermöglicht es Ihnen, die Spezifikation in einem visuellen Editor zu bearbeiten und die Änderungen bidirektional mit Git zu synchronisieren. Er schreibt konsistentes YAML, sodass Ihre Diffs sauber und Ihre Pull Requests lesbar bleiben, während Sie dennoch die vollständige Git-Historie und -Überprüfung erhalten.

App herunterladen

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen