Einführung
@powerduck/openapi-codegen ist eine TypeScript-Bibliothek, die eine OpenAPI-Operation in ausführbaren HTTP-Anfragecode für eine gewählte Sprache und einen HTTP-Client umwandelt. Sie eignet sich für API-Dokumentationsseiten, Entwicklerportale, API-Explorer, CLI-Werkzeuge und Codegenerierung während des Builds.
Sie unterstützt 21 Sprachen und 41 Sprach-/Client-Kombinationen, ist browserfähig und hat keine Laufzeitabhängigkeiten.
Warum openapi-codegen?
- Keine Laufzeitabhängigkeiten — läuft im Browser, in Node.js, Electron und Edge-Umgebungen ohne eingebaute Node-Module.
- Zwei Modulformate — native ESM- und CommonJS-Builds (
require()). - OpenAPI 3.0 / 3.1 / 3.2 — verarbeitet bereits geparste Dokumentobjekte. JSON und YAML sind möglich, wenn sie vor dem Aufruf von
generate()geparst werden. - 41 integrierte Generatoren für 21 Sprachen, die beim Import automatisch registriert werden.
- Vollständige Parameterserialisierung — Pfad-, Query-, Header- und Cookie-Parameter nach den OpenAPI-Regeln
style/explode/allowReserved. - Sicherheitsschemas — API-Schlüssel in Header, Query oder Cookie sowie HTTP Bearer und HTTP Basic.
- Body-Typen — JSON, Klartext, URL-kodierte Formulardaten und
multipart/form-data. $ref-Auflösung — dokumentinterne JSON-Pointer mit Cache, Referenzketten und Erkennung zyklischer Referenzen.- Automatische Beispiele — leitet Beispielwerte aus JSON Schema ab (
example,enum,default, Typen, Formate und Einschränkungen). - Plugins — eigene Generatoren über
register()oderuse()registrieren.
Funktionsweise
OpenAPI document ──normalize──▶ RequestIR ──generator.generate()──▶ source code string
normalizelöst$refs auf, führt Parameter auf Pfad- und Operationsebene zusammen, wählt den Medientyp des Anfragebodys, erzeugt Beispielwerte, löst Sicherheitsschemas auf und erstellt einen normalisiertenRequestIR.- Der gewählte
Generatorerhält denRequestIRund gibt ausführbaren Quellcode als Zeichenfolge zurück.
Üblicherweise genügt der Aufruf generate({...}), der beide Schritte übernimmt.
Kurzes Beispiel
import { generate } from "@powerduck/openapi-codegen";
const code = generate({
document, // parsed OpenAPI object
path: "/users/{id}",
method: "get",
language: "javascript",
client: "fetch",
});
console.log(code); // a runnable fetch() snippet
Nächste Schritte
- Installation — npm / yarn / pnpm und Verwendung im Browser.
- Schnellstart — Das erste Codebeispiel erzeugen und Generatoren auflisten.
- Konfiguration —
GenerateOptions,RequestIR,Generator,Plugin. - API-Referenz — Alle Exporte sowie die vollständige Liste der Sprachen und Clients.
- Beispiele — fetch, Python requests, cURL, eigene Generatoren, Plugins und direkter
RequestIR.