OpenAPI a tipi TypeScript
Converti un documento OpenAPI o Swagger in interfacce e tipi TypeScript.
OpenAPI a tipi TypeScript
Incolla un documento OpenAPI 3 o Swagger 2 — JSON o YAML — e questo strumento genera interfacce TypeScript corrispondenti per ogni schema in components/schemas, più un tipo per endpoint per i suoi parametri di percorso e query, corpo della richiesta e risposte. Risparmia il passo di scrivere manualmente i tipi API ogni volta che la specifica cambia, e mantiene il client sincronizzato con ciò che il server restituisce effettivamente.
Le opzioni controllano la forma dell'output. Scegli dichiarazioni interface o type, e decidi come vengono rappresentati i campi nullable: come proprietà facoltativa (x?: string) o come unione con null (x: string | null). I riferimenti $ref possono rimanere come tipi denominati che puntano all'interfaccia corrispondente, oppure essere espansi inline ovunque vengono utilizzati. Disattiva "genera tipi per percorso, parametro e risposta" per ottenere solo gli schemi dei componenti, oppure attiva un'unione di codice di stato per vedere ogni codice di risposta che un endpoint può restituire come un unico tipo. Le descrizioni dalla specifica diventano commenti JSDoc sopra ogni campo, e un prefisso del nome evita che i tipi generati collidano con i tuoi quando li incolli in una base di codice più grande.
L'analizzatore legge costrutti OpenAPI standard — schemi di oggetto e array, enumerazioni, oneOf/anyOf/allOf, nullable, additionalProperties — e segue i puntatori $ref locali all'interno dello stesso documento. Gli endpoint contrassegnati come deprecati possono essere completamente saltati, e un documento che non somiglia a OpenAPI (nessuna sezione components/schemas o paths) produce un errore chiaro invece di un output vuoto.
Tutto viene eseguito localmente nel tuo browser — la tua specifica API, che può descrivere un prodotto non ancora lanciato o un sistema interno, non viene mai caricata da nessuna parte. Copia i tipi generati, scaricali come file .txt da incollare in un file .ts, oppure invia l'output direttamente all'input per continuare a perfezionarlo.