Przejdź do treści
100% lokalnie

OpenAPI do typów TypeScript

Konwertuj dokument OpenAPI lub Swagger na interfejsy i typy TypeScript.

Wejście
Wynik

OpenAPI do typów TypeScript

Wklej dokument OpenAPI 3 lub Swagger 2 — JSON lub YAML — a to narzędzie generuje odpowiadające interfejsy TypeScript dla każdego schematu w components/schemas, plus jeden typ dla każdego endpointu z jego ścieżką, parametrami query, ciałem żądania i odpowiedziami. Oszczędza krok ręcznego pisania typów API za każdym razem, gdy specyfikacja się zmieni, i utrzymuje klienta zsynchronizowanym z tym, co serwer faktycznie zwraca.

Opcje kontrolują kształt wyników. Wybierz deklaracje interface lub type i zdecyduj, jak reprezentowane są pola nullable: jako opcjonalna właściwość (x?: string) lub jako unia z null (x: string | null). Referencje $ref mogą pozostać jako nazwane typy wskazujące na odpowiadający interfejs albo zostać rozszerzone inline wszędzie tam, gdzie się ich używa. Wyłącz "generuj typy ścieżek, parametrów i odpowiedzi", jeśli chcesz tylko schematy komponentów, lub włącz unię kodów statusu, aby zobaczyć wszystkie kody odpowiedzi, które endpoint może zwrócić jako jeden typ. Opisy ze specyfikacji stają się komentarzami JSDoc nad każdym polem, a prefiks nazwy chroni generowane typy przed kolizją z twoimi, gdy wklejasz je do większej bazy kodu.

Parser czyta standardowe konstrukcje OpenAPI — schematy object i array, wyliczenia, oneOf/anyOf/allOf, nullable, additionalProperties — i śledzi lokalne wskaźniki $ref w tym samym dokumencie. Endpointy oznaczone jako przestarzałe można całkowicie pominąć, a dokument, który nie wygląda jak OpenAPI (bez sekcji components/schemas lub paths), daje jasny błąd zamiast pustych wyników.

Wszystko działa lokalnie w twojej przeglądarce — twoja specyfikacja API, która może opisywać niewydany produkt lub wewnętrzny system, nigdy nie trafia do sieci. Skopiuj wygenerowane typy, pobierz je jako plik .txt do wklejenia do pliku .ts, lub wyślij wynik bezpośrednio z powrotem na wejście, aby go dalej udoskonalać.

Częste pytania

Czy obsługuje dokumenty OpenAPI 3 i Swagger 2?
Tak. Oba używają tej samej struktury ścieżek, a definicje Swagger 2 są czytane w taki sam sposób jak OpenAPI 3 components/schemas.
Co się stanie z odwołaniami $ref, które wskazują poza dokument?
Rozwiązywane są tylko lokalne odwołania (zaczynające się od #/). Odwołanie $ref do pliku zewnętrznego zostaje jako nazwany typ, ale nie może być rozszerzone, ponieważ nie ma nic do odczytania.
Czy mogę generować typy tylko dla endpointów bez wszystkich schematów komponentów?
Schematy komponentów zawsze się generują, gdy są obecne, ponieważ typy żądań i odpowiedzi zazwyczaj się na nich odwołują. Wyłącz typy ścieżek i przeskoczysz wszystko pochodne od ścieżek, zostają tylko schematy.
Dlaczego odwołanie schematu cyklicznego pozostaje jako nazwany typ nawet z "rozszerzeniem" włączonym?
Schemat, który odwołuje się do siebie samego, bezpośrednio lub poprzez inne schéma, nie może być wstawiany inline bez pętli nieskończonej, więc to odwołanie powraca do typu nazwanego, podczas gdy inne ciągle się rozszerzają.
Czy moja specyfikacja API jest uploadowana gdziekolwiek?
Nie. Parsowanie i generowanie typów odbywa się całkowicie w twojej przeglądarce — twój dokument nigdy nie opuszcza twoje urządzenie.