Ga naar inhoud
100% lokaal

OpenAPI naar TypeScript types

Zet een OpenAPI- of Swagger-document om in TypeScript interfaces en types.

Invoer
Uitvoer

OpenAPI naar TypeScript types

Plak een OpenAPI 3- of Swagger 2-document (JSON of YAML) in en deze tool genereert overeenkomstige TypeScript interfaces voor elk schema in components/schemas, plus één type per endpoint voor de path en query parameters, request body en responses. Dit bespaart het handmatig schrijven van API types telkens wanneer de specificatie verandert, en houdt de client in sync met wat de server werkelijk retourneert.

De opties bepalen de vorm van de output. Kies tussen interface of type declaraties, en bepaal hoe nullable velden worden weergegeven: als optioneel property (x?: string) of als union met null (x: string | null). $ref referenties kunnen zowel als benoemde types blijven staan die naar de overeenkomstige interface verwijzen, als inline worden uitgebreid waar ze ook gebruikt worden. Zet "Path-, parameter- en response types genereren" uit om alleen de component schemas te krijgen, of zet statuscodeunion aan om elke response code die een endpoint kan retourneren als één type te zien. Beschrijvingen uit de spec worden JSDoc-opmerkingen boven elk veld, en een naamprefix voorkomt dat gegenereerde types in botsing komen met je eigen types wanneer je ze in een grotere codebase plakt.

De parser leest standaard OpenAPI-constructen — object en array schemas, enums, oneOf/anyOf/allOf, nullable, additionalProperties — en volgt lokale $ref-verwijzingen binnen hetzelfde document. Endpoints gemarkeerd als verouderd kunnen volledig worden overgeslagen, en een document dat niet op OpenAPI lijkt (geen components/schemas of paths section) produceer een duidelijke foutmelding in plaats van lege output.

Alles draait lokaal in je browser — je API-specificatie, die een ongereleased product of intern systeem kan beschrijven, wordt nooit ergens heen geüpload. Kopieer de gegenereerde types, download ze als .txt-bestand om in een .ts-bestand te plakken, of stuur de output rechtstreeks terug naar de input om deze verder aan te scherpen.

FAQ

Ondersteunt het zowel OpenAPI 3- als Swagger 2-documenten?
Ja. Beide gebruiken dezelfde paths-structuur, en Swagger 2-definities worden op dezelfde manier gelezen als OpenAPI 3 components/schemas.
Wat gebeurt er met $ref-verwijzingen die buiten het document verwijzen?
Alleen lokale verwijzingen (beginnend met #/) worden opgelost. Een $ref naar een extern bestand blijft als benoemde type behouden maar kan niet worden uitgebreid, omdat er niets anders is om het uit te lezen.
Kan ik types alleen voor de endpoints genereren, zonder elk component-schema?
Component-schema's worden altijd gegenereerd wanneer aanwezig, omdat request- en response-types meestal naar hen verwijzen. Zet path types uit om alles wat van paths is afgeleid over te slaan en alleen de schema's te behouden.
Waarom blijft een circulaire schemareferentie als benoemde type bestaan, zelfs als "expanderen" is ingeschakeld?
Een schema dat zichzelf verwijst, direct of via een ander schema, kan niet inline worden gebruikt zonder in een lus terecht te komen, dus dat ene verwijzing valt terug op het benoemde type terwijl de rest nog steeds uitgebreid wordt.
Wordt mijn API-specificatie ergens heen geüpload?
Nee. Parseren en type-generatie draaien volledig in je browser — je document verlaat nooit je apparaat.