OpenAPI Generator: API Code-Generierung für Client und Server

OpenAPI Generator Anleitung: Installieren Sie die CLI, listen Sie Generatoren auf und generieren Sie Client-SDKs und Server-Stubs aus Ihrer OpenAPI- oder Swagger-Spezifikation.

INEZA Felin-Michel

INEZA Felin-Michel

22 June 2026

OpenAPI Generator: API Code-Generierung für Client und Server

Apidog für Unternehmen

On-Premises Bereitstellung

SSO & RBAC

SOC 2 konform

Apidog Enterprise entdecken

OpenAPI Generator ist ein Open-Source-Tool, das eine OpenAPI- oder Swagger-Spezifikation in funktionsfähigen Code umwandelt: Client-SDKs, Server-Stubs und Konfigurationsdateien. Sie installieren seine CLI, verweisen es auf Ihre Spezifikation, wählen einen Generator wie typescript-axios oder spring, und es schreibt den Code in einen Ausgabeordner. Dieser Leitfaden zeigt Ihnen, wie Sie es installieren, die verfügbaren Generatoren auflisten und Clients sowie Server für verschiedene Sprachen erstellen.

button

Was OpenAPI Generator ist

OpenAPI Generator liest eine maschinenlesbare API-Beschreibung und generiert daraus Quellcode. Geben Sie ihm eine openapi.yaml- (oder JSON-) Datei, und er kann eine Client-Bibliothek zum Aufrufen dieser API, einen Server-Stub, der sie implementiert, sowie Dokumentation und Konfiguration generieren.

Er unterstützt sowohl OpenAPI v2 (das ältere Swagger-Format) als auch OpenAPI v3. Das Projekt wird von der OpenAPITools-Organisation auf GitHub gepflegt und bietet Vorlagen für Dutzende von Sprachen und Frameworks.

Der entscheidende Unterschied: Dies ist ein Codegenerator, kein Dokumentationsgenerator. Dokumentationstools wie Swagger UI oder Redoc rendern Ihre Spezifikation in menschenlesbare HTML-Seiten. OpenAPI Generator hingegen produziert Code, den Sie kompilieren und ausliefern. Er kann auch Markdown-Dokumente generieren, aber seine Hauptaufgabe sind SDKs und Stubs.

Wie es sich zu Swagger Codegen verhält

Wenn Sie Swagger Codegen verwendet haben, wird sich OpenAPI Generator vertraut anfühlen. Es wurde im Mai 2018, zwischen den Swagger Codegen Versionen 2.3.1 und 2.4.0, von mehr als 40 seiner wichtigsten Mitwirkenden und Vorlagen-Ersteller von Swagger Codegen abgespalten.

Die Abspaltung erfolgte nach Meinungsverschiedenheiten über die Ausrichtung von Swagger Codegen 3.0.0. Die Community wollte einen schnelleren, offeneren Release-Zyklus. Die offiziellen Fork-Notizen beschreiben das Projekt als basierend auf Swagger Codegen 2.4.0-SNAPSHOT, sodass die beiden tiefe Wurzeln teilen. Wenn Sie die beiden abwägen, behandelt die Aufschlüsselung der Swagger Codegen Alternativen die praktischen Unterschiede.

Installation von OpenAPI Generator

Sie haben vier gängige Installationspfade. Wählen Sie den, der zu Ihrem Stack passt.

npm (am häufigsten)

Der npm-Wrapper ist für die meisten Teams der einfachste Einstiegspunkt. Er lädt das zugrunde liegende JAR herunter und verwaltet es für Sie.

npm install @openapitools/openapi-generator-cli -g

Sie können es auch ohne globale Installation ausführen:

npx @openapitools/openapi-generator-cli version

Homebrew (macOS)

brew install openapi-generator

Eigenständiges JAR

OpenAPI Generator ist eine Java-Anwendung, sodass Sie das JAR direkt von Maven Central herunterladen und mit Java ausführen können. Dies vermeidet die npm- oder Homebrew-Ebene vollständig.

wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.23.0/openapi-generator-cli-7.23.0.jar -O openapi-generator-cli.jar
java -jar openapi-generator-cli.jar help

Prüfen Sie Maven Central auf die neueste Versionsnummer vor dem Download.

Docker

Das offizielle Image ermöglicht es Ihnen, Code zu generieren, ohne etwas lokal zu installieren. Mounten Sie Ihr Arbeitsverzeichnis in den Container, damit es Ihre Spezifikation lesen und die Ausgabe zurückschreiben kann.

docker pull openapitools/openapi-generator-cli
docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate \
  -i /local/openapi.yaml -g go -o /local/out/go

Auflistung der verfügbaren Generatoren

Bevor Sie etwas generieren, sehen Sie sich an, welche Generatoren existieren. Jeder Generator zielt auf eine Sprache plus Framework ab, wie java, python oder spring.

openapi-generator-cli list

Für eine kompakte, zeilenweise Ansicht verwenden Sie das Kurz-Flag und teilen nach Kommas auf:

openapi-generator-cli list -s | tr ',' '\n'

Die Liste trennt Client-Generatoren (zum Aufrufen einer API) von Server-Generatoren (zum Implementieren einer API) sowie Dokumentations- und Schema-Generatoren.

Generieren eines Client-SDK

Der Kernbefehl ist generate. Er benötigt drei Argumente, die Sie jedes Mal verwenden werden:

Hier ist ein TypeScript-Client, der auf Axios basiert:

openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client

Das schreibt einen typisierten Client in ./client. Jede Operation in Ihrer Spezifikation wird zu einer Methode, und jedes Schema wird zu einem Modell.

Dasselbe Muster funktioniert über Sprachen hinweg. Tauschen Sie den Generatornamen und den Ausgabeordner aus:

openapi-generator-cli generate -i openapi.yaml -g java   -o ./client-java
openapi-generator-cli generate -i openapi.yaml -g python -o ./client-python
openapi-generator-cli generate -i openapi.yaml -g go     -o ./client-go

Da der Code aus einer Spezifikation stammt, bleiben alle Clients konsistent mit dem Vertrag. Wenn sich die Spezifikation ändert, generieren Sie neu, und Ihre SDKs folgen.

Generieren von Server-Stubs

Server-Generatoren kehren die Richtung um. Anstelle von Code, der Ihre API aufruft, erhalten Sie ein Gerüst, das sie implementiert, mit Routing, Anforderungsmodellen und verbundenen Handler-Schnittstellen. Sie füllen die Geschäftslogik aus.

Hier ist ein Spring Boot Server-Stub:

openapi-generator-cli generate -i openapi.yaml -g spring -o ./server-spring

Das generierte Projekt liefert Ihnen Controller und DTOs, die Ihrer Spezifikation entsprechen. Sie implementieren die Schnittstellenmethoden, und die Anfrage- und Antwortstrukturen sind bereits für Sie definiert. Dies hält den laufenden Server im Einklang mit dem veröffentlichten Vertrag.

Ausgabe konfigurieren

Die Standardausgabe ist selten genau das, was Sie wollen. OpenAPI Generator bietet Ihnen mehrere Kontrollmöglichkeiten.

Zusätzliche Eigenschaften

Die meisten Generatoren legen sprachenspezifische Optionen über --additional-properties (Kurzalias -p) offen. Übergeben Sie diese als kommagetrennte Schlüssel=Wert-Paare:

openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client \
  --additional-properties=npmName=@acme/api-client,supportsES6=true,withSeparateModelsAndApi=true

Jeder Generator dokumentiert seine eigenen Eigenschaften. Überprüfen Sie daher die Generatorseite für die vollständige Liste der akzeptierten Schlüssel.

Eine Konfigurationsdatei

Wenn die Befehlszeile zu lang wird, verschieben Sie die Optionen in eine Konfigurationsdatei. JSON und YAML werden beide unterstützt.

openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client -c config.yaml

Eine Konfigurationsdatei hält Ihre Generierungseinstellungen in der Versionskontrolle neben der Spezifikation, was Builds reproduzierbar macht.

Dateien ignorieren

OpenAPI Generator liest eine .openapi-generator-ignore-Datei im Ausgabeverzeichnis. Es verwendet dieselbe Syntax wie .gitignore. Verwenden Sie sie, um zu verhindern, dass der Generator manuell bearbeitete Dateien überschreibt.

# .openapi-generator-ignore
*.md
src/custom/**

Sie können mit --ignore-file-override <location> auf eine Ignorierungsdatei an einem anderen Speicherort verweisen.

Benutzerdefinierte Vorlagen

Jeder Generator wird von Mustache-Vorlagen gesteuert. Wenn die Standardausgabe nicht Ihrem Hausstil entspricht, kopieren Sie die Vorlagen, bearbeiten Sie sie und übergeben Sie Ihr Verzeichnis mit -t:

openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client \
  -t ./my-templates

Dies ist das richtige Werkzeug, wenn Sie einen benutzerdefinierten Header, einen anderen HTTP-Client oder interne Namenskonventionen in jede generierte Datei integrieren müssen.

In CI ausführen

Codegenerierung gehört in Ihre Pipeline, nicht auf den Laptop eines einzelnen Entwicklers. Generieren Sie den Client bei jeder Spezifikationsänderung neu, damit das zugesagte SDK nie vom Vertrag abweicht. Hier ist ein GitHub Actions Schritt mit npx:

- name: Generate API client
  run: npx @openapitools/openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client

Sie können den Build fehlschlagen lassen, wenn die neu generierte Ausgabe von dem abweicht, was zugesagt wurde, was Spezifikationen und SDKs erfasst, die nicht mehr synchron sind.

Die Spezifikation als einzige Quelle der Wahrheit beibehalten

OpenAPI Generator ist nur so gut wie die Spezifikation, die Sie ihm zuführen. Müll rein, Müll raus: eine vage oder ungültige Spezifikation erzeugt ein vages oder fehlerhaftes SDK. Der wertvollste Schritt geschieht also, bevor Sie jemals generate ausführen. Sie machen die Spezifikation korrekt, vollständig und stabil.

Hier passt Apidog. Apidog ist eine All-in-One-API-Plattform, die OpenAPI-nativ ist, sodass Ihre Designarbeit und Ihre Spezifikation dasselbe Artefakt sind. Sie entwerfen oder importieren die API, und Apidog hält das OpenAPI-Dokument als Quelle der Wahrheit, aus der alles andere resultiert.

Ein sauberer Workflow sieht so aus:

  1. Entwerfen oder importieren Sie die OpenAPI-Spezifikation in Apidog. Die Branch-Unterstützung ermöglicht es Ihnen, Änderungen isoliert zu bearbeiten, ähnlich der Versionskontrolle von OpenAPI mit Git.
  2. Validieren und linten Sie die Spezifikation, bevor Sie generieren. Eine Spezifikation, die einen OpenAPI Linter und einen Swagger Validator besteht, erzeugt saubereren Code mit weniger Überraschungen.
  3. Exportieren Sie die validierte Spezifikation und führen Sie sie dann dem OpenAPI Generator für Ihre SDKs und Stubs zu.

Sie können die Spezifikation auch mit Ihrem Repo synchron halten, zum Beispiel durch Synchronisieren der OpenAPI-Spezifikation mit GitHub, und Änderungen mit einem OpenAPI-Diff überprüfen, bevor sie ausgeliefert werden. Wenn Sie von älteren Tools weggehen, ist der Vergleich der Swagger-Alternativen für API-Design und -Tests ein guter Ausgangspunkt.

Wo Apidog aufhört und OpenAPI Generator beginnt

Es lohnt sich, hier präzise zu sein. Apidog generiert keine vollständigen Client-SDKs oder Server-Stubs. Das ist die Aufgabe von OpenAPI Generator, und die beiden sind komplementär statt konkurrierend.

Apidog bietet Ihnen jedoch fertige Client-Anfrage-Snippets für jeden Endpunkt, in vielen Sprachen und HTTP-Clients, zum Kopieren. Das sind anfragebasierte Beispiele, die Sie in ein Skript einfügen können, keine verpackten SDKs. Für eine generierte, versionierte Bibliothek oder ein Server-Gerüst führen Sie OpenAPI Generator auf der von Apidog produzierten Spezifikation aus.

Apidog liefert auch seinen eigenen Befehlszeilen-Testrunner, die Apidog CLI, die von der Codegenerierung getrennt ist. Sie führt Ihre API-Tests in CI aus; sie generiert keine SDKs. Installieren und verwenden Sie sie so:

npm install -g apidog-cli@latest

apidog run \
  --access-token $APIDOG_ACCESS_TOKEN \
  -t <testScenarioId> \
  -e <envId> \
  -r cli,html \
  -n 1

Sie übergeben die Authentifizierung mit --access-token, -t wählt das Testszenario, -e wählt die Umgebung aus, gegen die ausgeführt werden soll, und -r wählt die Reporter aus. Führen Sie es auf einer aktuellen Node.js LTS-Version aus. Einzelheiten zur Einrichtung finden Sie im Apidog CLI Installationsleitfaden und der Anleitung zum Testen einer REST-API über die Befehlszeile.

Der vollständige Kreislauf ist also: Spezifikation in Apidog entwerfen und validieren, SDKs und Stubs mit OpenAPI Generator generieren, dann die laufende API mit der Apidog CLI überprüfen.

Testen Sie Apidog kostenlos, keine Kreditkarte erforderlich.

Häufig gestellte Fragen

Was ist OpenAPI Generator?

OpenAPI Generator ist ein Open-Source-Tool der OpenAPITools-Organisation, das Code aus einer OpenAPI- oder Swagger-Spezifikation generiert. Es produziert Client-SDKs, Server-Stubs, Dokumentation und Konfigurationsdateien und unterstützt sowohl OpenAPI v2 als auch v3.

Wie verwendet man OpenAPI Generator?

Installieren Sie die CLI (z. B. npm install @openapitools/openapi-generator-cli -g) und führen Sie dann generate mit drei Flags aus: -i für Ihre Spezifikation, -g für den Generator und -o für den Ausgabeordner. Führen Sie zuerst openapi-generator-cli list aus, um alle verfügbaren Generatoren anzuzeigen.

Wie funktioniert OpenAPI Generator?

Es parst Ihre Spezifikation in ein internes Modell und rendert dieses Modell dann mithilfe von Mustache-Vorlagen für Ihr gewähltes Ziel. Jede Operation wird zu einer Methode oder einem Handler, und jedes Schema wird zu einem typisierten Modell. Sie können die Vorlagen mit -t überschreiben, um die Ausgabe zu ändern.

Wie generiert man ein Client-SDK aus einer OpenAPI-Spezifikation?

Wählen Sie einen Client-Generator und führen Sie generate aus. Zum Beispiel erstellt openapi-generator-cli generate -i openapi.yaml -g typescript-axios -o ./client einen typisierten TypeScript-Client. Tauschen Sie typescript-axios gegen java, python oder go aus, um andere Sprachen anzusprechen.

Wie generiert man Server-Stubs?

Wählen Sie einen Server-Generator. Für ein Spring Boot Gerüst führen Sie openapi-generator-cli generate -i openapi.yaml -g spring -o ./server-spring aus. Die Ausgabe enthält Controller und Anforderungsmodelle aus Ihrer Spezifikation, und Sie implementieren die Handler-Logik.

Was ist der Unterschied zwischen OpenAPI Generator und Swagger Codegen?

OpenAPI Generator wurde im Mai 2018 von mehr als 40 seiner Mitwirkenden von Swagger Codegen abgespalten, die einen schnelleren, gemeinschaftsgetriebenen Release-Zyklus wollten. Die beiden teilen eine gemeinsame Basis, aber OpenAPI Generator hat jetzt seine eigene Roadmap, sein eigenes Generator-Set und seinen eigenen Release-Plan.

Wie generiert man ein PHP-SDK aus einer OpenAPI-Spezifikation?

Verwenden Sie den php-Generator: openapi-generator-cli generate -i openapi.yaml -g php -o ./client-php. Führen Sie openapi-generator-cli list aus, um den genauen Generatornamen zu bestätigen und um andere PHP-Framework-Optionen zu sehen, bevor Sie generieren.

button

Praktizieren Sie API Design-First in Apidog

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