Vai al contenuto
100% locale

OpenAPI a tipi TypeScript

Converti un documento OpenAPI o Swagger in interfacce e tipi TypeScript.

Ingresso

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.

FAQ

Supporta documenti OpenAPI 3 e Swagger 2?
Sì. Entrambi utilizzano la stessa struttura di percorsi e le definizioni Swagger 2 vengono lette allo stesso modo dei components/schemas di OpenAPI 3.
Cosa succede ai riferimenti $ref che puntano al di fuori del documento?
Solo i riferimenti locali (a partire da #/) vengono risolti. Un $ref a un file esterno viene mantenuto come tipo denominato ma non può essere espanso, poiché non c'è nulla da cui leggerlo.
Posso generare tipi solo per gli endpoint, senza ogni schema di componente?
Gli schemi dei componenti vengono sempre generati quando presenti, poiché i tipi di richiesta e risposta di solito li referenziano. Disattiva i tipi di percorso per saltare tutto ciò che deriva dai percorsi e mantenere solo gli schemi.
Perché un riferimento di schema circolare rimane come tipo denominato anche con "expand" attivato?
Uno schema che fa riferimento a se stesso, direttamente o indirettamente attraverso un altro schema, non può essere inserito inline senza creare un ciclo infinito, quindi quel riferimento ritorna al tipo denominato mentre il resto si espande ancora.
La mia specifica API viene caricata da qualche parte?
No. L'analisi e la generazione dei tipi vengono eseguite interamente nel tuo browser — il tuo documento non lascia mai il tuo dispositivo.