Přeskočit na obsah
100% lokálně

OpenAPI na TypeScript typy

Převeďte dokument OpenAPI nebo Swagger na TypeScript rozhraní a typy.

Vstup
Výstup

OpenAPI na TypeScript typy

Vložte dokument OpenAPI 3 nebo Swagger 2 — JSON nebo YAML — a tento nástroj vygeneruje odpovídající TypeScript rozhraní pro každé schéma v components/schemas, plus jeden typ pro každý endpoint s jeho cestou, query parametry, tělem požadavku a odpověďmi. Ušetří vám krok ruční zápisu typů API pokaždé, když se specifikace změní, a udržuje klienta v souladu s tím, co server skutečně vrací.

Volby ovládají podobu výstupu. Vyberte si deklarace interface nebo type a rozhodněte se, jak jsou reprezentována pole s nulovou hodnotou: jako volitelná vlastnost (x?: string) nebo jako union s null (x: string | null). Reference $ref mohou buď zůstat jako pojmenované typy ukazující na odpovídající rozhraní, nebo být rozbaleny inline všude, kde se používají. Vypněte "generovat typy cest, parametrů a odpovědí", pokud chcete pouze schéma komponent, nebo zapněte union stavových kódů, abyste viděli všechny kódy odpovědí, které může endpoint vrátit jako jeden typ. Popisy ze specifikace se stanou komentáři JSDoc nad každým polem a předpona názvu udržuje vygenerované typy od kolize s vašimi při jejich vložení do větší kódové základny.

Parser čte standardní konstrukty OpenAPI — object a array schéma, výčty, oneOf/anyOf/allOf, nullable, additionalProperties — a sleduje lokální ukazatele $ref v rámci stejného dokumentu. Endpointy označené jako zastaralé lze zcela přeskočit a dokument, který nevypadá jako OpenAPI (žádné sekce components/schemas nebo paths), vytvoří jasnou chybu namísto prázdného výstupu.

Všechno běží lokálně ve vašem prohlížeči — vaše specifikace API, která může popisovat nevydaný produkt nebo interní systém, se nikdy nikam neuploaduje. Zkopírujte vygenerované typy, stáhněte si je jako soubor .txt, který vložíte do souboru .ts, nebo pošlete výstup přímo zpět na vstup, abyste jej dále vylepšili.

Časté dotazy

Podporuje dokumenty OpenAPI 3 i Swagger 2?
Ano. Oba používají stejnou strukturu paths a definice Swagger 2 se čtou stejným způsobem jako OpenAPI 3 components/schemas.
Co se stane s referencemi $ref, které ukazují mimo dokument?
Řeší se pouze lokální reference (začínající #/). Odkaz $ref na externí soubor se ponechá jako pojmenovaný typ, ale nelze jej rozbalit, protože z něj není nic ke čtení.
Mohu generovat typy pouze pro endpointy bez všech schémat komponent?
Schéma komponent se vždy generují, pokud jsou přítomna, protože typy požadavků a odpovědí na ně obvykle odkazují. Vypněte typy cest a přeskočíte vše odvozené z cest, zůstanou pouze schéma.
Proč zůstává cirkulární reference schématu jako pojmenovaný typ i s "rozbalit" zapnutým?
Schéma, která se odkazuje sama na sebe, přímo nebo prostřednictvím jiného schématu, nemůže být vložena inline bez nekonečné smyčky, takže tato reference se vrátí k pojmenovanému typu, zatímco ostatní se stále rozbalhují.
Je moje specifikace API uploadnutá někam?
Ne. Parsování a generování typů probíhá zcela ve vašem prohlížeči — váš dokument nikdy neopustí vaše zařízení.