Sări la conținut
Complet local

Tipuri OpenAPI la TypeScript

Transformă un document OpenAPI sau Swagger în interfețe și tipuri TypeScript.

Intrare
Ieșire

Tipuri OpenAPI la TypeScript

Lipește un document OpenAPI 3 sau Swagger 2 — JSON sau YAML — și acest instrument generează interfețe TypeScript corespunzătoare pentru fiecare schemă în components/schemas, plus un tip per endpoint pentru parametrii de cale și interogare, corpul cererii și răspunsurile. Economisește pasul de a scrie manual tipuri API de fiecare dată când o specificație se schimbă, menținând clientul sincronizat cu ceea ce serverul returnează de fapt.

Opțiunile controlează forma ieșirii. Alege declarații interface sau type și decide cum sunt reprezentate câmpurile nulabile: ca o proprietate opțională (x?: string) sau ca o uniune cu null (x: string | null). Referințele $ref pot rămâne ca tipuri numite care indică interfața corespunzătoare, sau pot fi expandate în linie oriunde sunt utilizate. Dezactivează "genera tipuri de cale, parametru și răspuns" pentru a obține doar scheme de componente, sau activează o uniune de cod de stare pentru a vedea fiecare cod de răspuns pe care un endpoint îl poate returna ca un singur tip. Descrierile din specificație devin comentarii JSDoc deasupra fiecărui câmp, iar un prefix de nume menține tipurile generate să nu se ciocnească cu ale tale atunci când le lipești într-o bază de cod mai mare.

Analyzatorul citește construcții OpenAPI standard — scheme de obiecte și tablouri, enums, oneOf/anyOf/allOf, nullable, additionalProperties — și urmărește pointeri $ref locali în același document. Endpoint-urile marcate ca depreciate pot fi complet omise, iar un document care nu arată ca OpenAPI (fără secțiune components/schemas sau paths) produce o eroare clară în loc de o ieșire goală.

Totul rulează local în browserul tău — specificația API, care poate descrie un produs nelansat sau un sistem intern, nu este niciodată încărcată nicăieri. Copiază tipurile generate, descarcă-le ca fișier .txt pentru a lipi într-un fișier .ts, sau trimite ieșirea direct înapoi în intrare pentru a continua să o rafințezi.

FAQ

Suportă atât documente OpenAPI 3, cât și Swagger 2?
Da. Ambele folosesc aceeași structură de paths, iar definițiile Swagger 2 sunt citite în același mod ca OpenAPI 3 components/schemas.
Ce se întâmplă cu referințele $ref care indică în afara documentului?
Doar referințele locale (începând cu #/) sunt rezolvate. Un $ref la un fișier extern este menținut ca un tip numit, dar nu poate fi expandat, deoarece nu este nimic altceva de citit din el.
Pot genera tipuri doar pentru endpoint-uri, fără fiecare schemă de componentă?
Scheme de componente sunt întotdeauna generate când sunt prezente, deoarece tipurile de cerere și răspuns de obicei le fac referință. Dezactivează tipurile de cale pentru a omite tot ceea ce este derivat din cai și a menține doar scheme.
De ce o referință de schemă circulară rămâne ca un tip numit chiar și cu "expandare" activată?
O schemă care face referință la sine, direct sau indirect prin altă schemă, nu poate fi inline fără a face buclă la infinit, deci acea referință revine la tipul numit în timp ce restul încă se expandează.
Specificația API mea este încărcată undeva?
Nu. Analiza și generarea de tipuri rulează integral în browserul tău — documentul tău nu părăsește niciodată dispozitivul tău.