Hoppa till innehåll
100% lokalt

OpenAPI till TypeScript-typer

Omvandla ett OpenAPI- eller Swagger-dokument till TypeScript gränssnitt och typer.

Inmatning
Utmatning

OpenAPI till TypeScript-typer

Klistra in ett OpenAPI 3- eller Swagger 2-dokument (JSON eller YAML) och det här verktyget genererar matchande TypeScript gränssnitt för varje schema i components/schemas, plus en typ per slutpunkt för dess path- och query-parametrar, förfrågantext och svar. Det sparar steget att manuellt skriva API-typer varje gång specifikationen ändras, och håller klienten synkroniserad med vad servern faktiskt returnerar.

Alternativen kontrollerar utdataformatet. Välj mellan interface- eller type-deklarationer, och bestäm hur nullable-fält representeras: som en valfri egenskap (x?: string) eller som en union med null (x: string | null). $ref-referenser kan antingen förbli som namngivna typer som pekar på motsvarande gränssnitt, eller expanderas inline överallt där de används. Stäng av "Generera sökväg-, parameter- och svarstyper" för att bara få komponentscheman, eller slå på en statuskodunion för att se varje svarskod som en slutpunkt kan returnera som en enda typ. Beskrivningar från specifikationen blir JSDoc-kommentarer ovanför varje fält, och ett namnprefix förhindrar att genererade typer kolliderar med dina egna när du klistrar in dem i en större kodbas.

Parsern läser standard OpenAPI-konstruktioner — objekt- och arrayscheman, enums, oneOf/anyOf/allOf, nullable, additionalProperties — och följer lokala $ref-pekare inom samma dokument. Slutpunkter märkta som föråldrade kan hoppas över helt, och ett dokument som inte ser ut som OpenAPI (ingen components/schemas eller paths-sektion) producerar ett tydligt felmeddelande istället för tom utdata.

Allt körs lokalt i din webbläsare — din API-specifikation, som kan beskriva en ej utgiven produkt eller ett internt system, laddas aldrig upp någonstans. Kopiera de genererade typerna, ladda ned dem som en .txt-fil för att klistra in i en .ts-fil, eller skicka utdata direkt tillbaka till inmatningen för att fortsätta förfina den.

FAQ

Stöder det både OpenAPI 3- och Swagger 2-dokument?
Ja. Båda använder samma paths-struktur, och Swagger 2-definitioner läses på samma sätt som OpenAPI 3 components/schemas.
Vad händer med $ref-referenser som pekar utanför dokumentet?
Endast lokala referenser (som börjar med #/) löses upp. En $ref till en extern fil behålls som en namngiven typ men kan inte expanderas, eftersom det inte finns något annat att läsa den från.
Kan jag generera typer endast för slutpunkterna, utan alla komponentscheman?
Komponentscheman genereras alltid när de finns, eftersom begäran- och svarstyper vanligtvis refererar till dem. Stäng av sökvägstyper för att hoppa över allt som härleds från sökvägar och behålla endast scheman.
Varför förblir en cirkulär schemoreferens som en namngiven typ även när "expandera" är påslaget?
Ett schema som refererar sig själv, direkt eller genom ett annat schema, kan inte infogas på plats utan att loopa för evigt, så den referensen faller tillbaka till den namngivna typen medan resten fortfarande expanderas.
Laddas min API-specifikation upp någonstans?
Nej. Parsing och typgenerering körs helt i din webbläsare — ditt dokument lämnar aldrig din enhet.