Pengantar
@powerduck/openapi-codegen adalah pustaka TypeScript yang mengubah operasi OpenAPI menjadi contoh kode permintaan HTTP yang dapat dijalankan dengan bahasa dan klien HTTP pilihan Anda. Dirancang untuk situs dokumentasi API, portal pengembang, penjelajah API, alat CLI, dan pembuatan kode saat build.
Pustaka ini mendukung 21 bahasa dan 41 kombinasi bahasa/klien, kompatibel dengan browser, serta tidak memiliki dependensi runtime.
Mengapa openapi-codegen
- Tanpa dependensi runtime — berjalan di browser, Node.js, Electron, dan runtime edge tanpa memerlukan modul bawaan Node.
- Dua format modul — build ESM native dan CommonJS (
require()). - OpenAPI 3.0 / 3.1 / 3.2 — memproses objek dokumen yang sudah diparsing. JSON dan YAML dapat digunakan setelah diparsing sebelum memanggil
generate(). - 41 generator bawaan untuk 21 bahasa, otomatis terdaftar saat diimpor.
- Serialisasi parameter lengkap — parameter path, query, header, dan cookie mengikuti aturan OpenAPI
style/explode/allowReserved. - Skema keamanan — kunci API di header/query/cookie, HTTP bearer, dan HTTP basic.
- Jenis body — JSON, teks biasa, formulir berkode URL, dan
multipart/form-data. - Resolusi
$ref— referensi JSON Pointer dalam dokumen dengan cache, rantai referensi, dan deteksi siklus. - Contoh otomatis — menyimpulkan nilai dari JSON Schema (
example,enum,default, tipe, format, batasan). - Sistem plugin — daftarkan generator kustom melalui
register()atauuse().
Cara kerja
OpenAPI document ──normalize──▶ RequestIR ──generator.generate()──▶ source code string
normalizemenyelesaikan$ref, menggabungkan parameter tingkat jalur dan operasi, memilih jenis media body, menghasilkan nilai contoh, menyelesaikan skema keamanan, dan membuatRequestIRyang dinormalisasi.Generatoryang dipilih menerimaRequestIRdan mengembalikan string kode sumber yang dapat dijalankan.
Biasanya cukup memanggil generate({...}) untuk menjalankan kedua langkah tersebut.
Contoh dasar
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
Langkah berikutnya
- Instalasi — npm / yarn / pnpm dan penggunaan di browser.
- Mulai cepat — Buat cuplikan pertama dan tampilkan daftar generator.
- Konfigurasi —
GenerateOptions,RequestIR,Generator,Plugin. - Referensi API — Semua ekspor dan daftar lengkap bahasa/klien.
- Contoh — fetch, Python requests, cURL, generator kustom, plugin, dan
RequestIRlangsung.