Zum Inhalt springen
100% lokal

OpenAPI zu TypeScript-Typen

Wandeln Sie ein OpenAPI- oder Swagger-Dokument in TypeScript-Interfaces und -Typen um.

Eingabe
Ausgabe

OpenAPI zu TypeScript-Typen

Fügen Sie ein OpenAPI 3- oder Swagger 2-Dokument (JSON oder YAML) ein und dieses Tool erzeugt übereinstimmende TypeScript-Interfaces für jedes Schema in components/schemas, plus einen Typ pro Endpunkt für seine Path- und Query-Parameter, Request Body und Responses. Dies spart den Schritt, API-Typen jedes Mal von Hand zu schreiben, wenn sich die Spezifikation ändert, und hält den Client mit dem synchron, was der Server tatsächlich zurückgibt.

Die Optionen steuern die Form der Ausgabe. Wählen Sie Interface- oder Type-Deklarationen und entscheiden Sie, wie Nullable-Felder dargestellt werden: als optionale Eigenschaft (x?: string) oder als Union mit null (x: string | null). $ref-Verweise können entweder als benannte Typen bestehen bleiben, die auf das entsprechende Interface verweisen, oder inline überall dort expandiert werden, wo sie verwendet werden. Schalten Sie "Path-, Parameter- und Response-Typen erzeugen" aus, um nur die Component-Schemas zu erhalten, oder schalten Sie eine Status-Code-Union ein, um jeden Response-Code zu sehen, den ein Endpunkt zurückgeben kann, als einzelner Typ. Beschreibungen aus der Spezifikation werden zu JSDoc-Kommentaren über jedem Feld, und ein Namensprefix verhindert Kollisionen der generierten Typen mit Ihren eigenen, wenn Sie sie in einen größeren Codebase einfügen.

Der Parser liest Standard-OpenAPI-Konstrukte — Object- und Array-Schemas, Enums, oneOf/anyOf/allOf, nullable, additionalProperties — und folgt lokalen $ref-Pointern im selben Dokument. Endpunkte, die als veraltet gekennzeichnet sind, können vollständig übersprungen werden, und ein Dokument, das nicht wie OpenAPI aussieht (keine components/schemas oder paths Section), erzeugt eine klare Fehlermeldung anstelle einer leeren Ausgabe.

Alles läuft lokal in Ihrem Browser — Ihre API-Spezifikation, die ein nicht veröffentlichtes Produkt oder ein internes System beschreiben kann, wird niemals irgendwohin hochgeladen. Kopieren Sie die generierten Typen, laden Sie sie als .txt-Datei herunter, um sie in eine .ts-Datei einzufügen, oder senden Sie die Ausgabe direkt zurück zur Eingabe, um sie weiter zu verfeinern.

Häufige Fragen

Unterstützt es sowohl OpenAPI 3- als auch Swagger 2-Dokumente?
Ja. Beide verwenden die gleiche paths-Struktur, und Swagger 2-Definitionen werden auf die gleiche Weise gelesen wie OpenAPI 3 components/schemas.
Was geschieht mit $ref-Verweisen, die außerhalb des Dokuments verweisen?
Nur lokale Verweise (ab #/) werden aufgelöst. Ein $ref zu einer externen Datei wird als benannter Typ beibehalten, kann aber nicht expandiert werden, da es nichts anderes gibt, von dem es gelesen werden könnte.
Kann ich Typen nur für die Endpunkte erzeugen, ohne jedes Component-Schema?
Component-Schemas werden immer generiert, wenn vorhanden, da Request- und Response-Typen normalerweise auf sie verweisen. Schalten Sie Path-Typen aus, um alles aus Paths abgeleitete zu überspringen und nur die Schemas beizubehalten.
Warum bleibt eine zirkuläre Schema-Referenz als benannter Typ bestehen, auch wenn "Expandieren" aktiviert ist?
Ein Schema, das sich selbst referenziert, direkt oder über ein anderes Schema, kann nicht inline erfolgen, ohne in einer Schleife zu landen, daher fällt diese eine Referenz auf den benannten Typ zurück, während die übrigen noch expandieren.
Wird meine API-Spezifikation irgendwohin hochgeladen?
Nein. Parsing und Typenerzeugung laufen vollständig in Ihrem Browser — Ihr Dokument verlässt niemals Ihr Gerät.