Preskoči na vsebino
100% lokalno

OpenAPI v TypeScript tipe

Pretvori dokument OpenAPI ali Swagger v TypeScript vmesnike in tipe.

Vhod
Izhod

OpenAPI v TypeScript tipe

Prilepite dokument OpenAPI 3 ali Swagger 2 — JSON ali YAML — in to orodje ustvari ustrezne TypeScript vmesnike za vsako shemo v components/schemas, plus en tip na končno točko za njegove poti in parametre poizvedbe, telo zahtevka in odgovore. Prihrani korak ročnega pisanja tipov API vsakič, ko se specifikacija spremeni, in ohrani odjemalca usklađenega s tem, kar strežnik dejansko vrne.

Mogočnosti nadzirajo obliko rezultata. Izberite interface ali type deklaracije in se odločite, kako so polja, ki dovolijo null, predstavljena: kot neobvezna lastnost (x?: string) ali kot unija z null (x: string | null). Reference $ref lahko ostanejo kot poimenovani tipi, ki kažejo na ustrezen vmesnik, ali pa so razširjene v redu, kjer se jih uporablja. Izklopite »ustvari tipe poti, parametrov in odgovorov«, da dobite samo sheme komponent, ali pa vklopite unijo statusa kode, da vidite vsak kodo odgovora, ki jo lahko vrne končna točka, kot en tip. Opisi iz specifikacije postanejo JSDoc komentarji nad vsakim poljem, predpona imena pa preprečuje, da bi se generirani tipi trčili z vašimi, ko jih prilepite v večjo kodno bazo.

Parser prebere standardne OpenAPI konstrukte — object in array sheme, enume, oneOf/anyOf/allOf, nullable, additionalProperties — in sledi lokalnim kazalcem $ref v istem dokumentu. Končne točke, označene kot zastarele, se lahko v celoti preskočijo, dokument, ki ne izgleda kot OpenAPI (nima razdelkov components/schemas ali paths), pa izdela jasno napako namesto praznega rezultata.

Vse se izvršuje lokalno v vašem brskalniku — vaša specifikacija API-ja, ki lahko opisuje neizdan proizvod ali notranji sistem, nikoli ni posredovana nikamor. Kopirajte generirane tipe, jih preuzmite kot datoteko .txt, da jo prilepite v datoteko .ts, ali pošljite rezultat naravnost nazaj na vnos, da ga nadaljujete z izboljšanjem.

FAQ

Ali podpira tako OpenAPI 3 kot Swagger 2 dokumente?
Ja. Oba uporabljata isto strukturo poti, in definicije Swagger 2 se berejo na isti način kot OpenAPI 3 components/schemas.
Kaj se zgodi s $ref referencami, ki kažejo izven dokumenta?
Samo lokalne reference (začevši z #/) so razrešene. $ref na zunanjo datoteko ostane kot poimenovani tip, vendar ga ni mogoče razširiti, ker ni ničesar drugega, iz česar bi ga bilo mogoče prebrati.
Ali lahko ustvarim tipe samo za končne točke, brez vsake sheme komponente?
Sheme komponent se vedno ustvarijo, če so na voljo, ker tipi zahtevkov in odgovorov navadno nanje sklicujejo. Izklopite tipe poti, da preskočite vse, kar je izpeljano iz poti, in ohranite samo sheme.
Zakaj ostane cirkularna referenca sheme kot poimenovani tip, tudi če je »razširi« vključena?
Shema, ki se sklicuje nase, neposredno ali prek druge sheme, se ne more vstaviti brez neskončne zanke, zato se ta ena referenca vrne na poimenovani tip, medtem ko se ostale še razširijo.
Ali je moja specifikacija API-ja posredovana kjerkoli?
Ne. Razčlenjevanje in ustvarjanje tipov se izvajata v celoti v vašem brskalniku — vaš dokument nikoli ne zapusti vašo napravo.