Introduzione
@powerduck/openapi-codegen è una libreria TypeScript che trasforma un'operazione OpenAPI in codice di esempio HTTP eseguibile nel linguaggio e con il client HTTP scelti. È pensata per siti di documentazione API, portali per sviluppatori, esploratori di API, strumenti CLI e generazione di codice durante la build.
Supporta 21 linguaggi e 41 combinazioni linguaggio/client, è compatibile con il browser e non ha dipendenze di runtime.
Perché openapi-codegen
- Nessuna dipendenza di runtime — funziona in browser, Node.js, Electron e ambienti edge senza moduli integrati di Node.
- Due formati di moduli — build ESM nativa e CommonJS (
require()). - OpenAPI 3.0 / 3.1 / 3.2 — elabora oggetti documento già analizzati. JSON e YAML sono supportati se analizzati prima di chiamare
generate(). - 41 generatori integrati per 21 linguaggi, registrati automaticamente all'importazione.
- Serializzazione completa dei parametri — percorso, query, header e cookie secondo le regole OpenAPI
style/explode/allowReserved. - Schemi di sicurezza — chiave API in header, query o cookie, HTTP bearer e HTTP basic.
- Tipi di corpo — JSON, testo semplice, moduli con codifica URL e
multipart/form-data. - Risoluzione di
$ref— riferimenti JSON Pointer interni al documento, con cache, concatenamento e rilevamento dei cicli. - Esempi automatici — deduce valori da JSON Schema (
example,enum,default, tipi, formati e vincoli). - Plugin — registra generatori personalizzati tramite
register()ouse().
Come funziona
OpenAPI document ──normalize──▶ RequestIR ──generator.generate()──▶ source code string
normalizerisolve i$ref, unisce i parametri di percorso e operazione, sceglie il tipo di contenuto del corpo, genera valori di esempio, risolve gli schemi di sicurezza e produce unRequestIRnormalizzato.- Il
Generatorselezionato riceve ilRequestIRe restituisce una stringa di codice sorgente eseguibile.
In genere basta chiamare generate({...}), che esegue entrambi i passaggi.
Esempio di base
import { generate } from "@powerduck/openapi-codegen";
const code = generate({
document, // parsed OpenAPI object
path: "/users/{id}",
method: "get",
language: "javascript",
client: "fetch",
});
console.log(code); // a runnable fetch() snippet
Passaggi successivi
- Installazione — npm / yarn / pnpm e uso nel browser.
- Guida rapida — Genera il primo frammento ed elenca i generatori.
- Configurazione —
GenerateOptions,RequestIR,Generator,Plugin. - Riferimento API — Tutti gli export e l'elenco completo di linguaggi e client.
- Esempi — fetch, Python requests, cURL, generatori personalizzati, plugin e
RequestIRdiretto.