概要
@powerduck/openapi-codegen は、OpenAPI の操作を、選択した言語と HTTP クライアントの 実行可能な HTTP リクエスト例に変換する TypeScript ライブラリです。API ドキュメン トサイト、開発者ポータル、API エクスプローラー、CLI ツール、ビルド時のコード生成向けに設計されています。
21 言語と 41 の言語・クライアントの組み合わせに対応し、ブラウザーで動作し、実行時の依存パッケージは不要です。
openapi-codegen を選ぶ理由
- 実行時依存なし — Node の組み込みモジュールを必要とせず、ブラウザー、Node.js、Electron、エッジ環境で動作します。
- 2 つのモジュール形式 — ネイティブ ESM と CommonJS(
require())のビルドを提供します。 - OpenAPI 3.0 / 3.1 / 3.2 — 解析済みのドキュメントオブジェクトを処理します。
generate()の前に解析すれば JSON と YAML のどちらも使えます。 - 41 の組み込みジェネレーター — 21 言語をカバーし、インポート時に自動登録されます。
- パラメーターの完全なシリアライズ — path、query、header、cookie に対し、OpenAPI の
style/explode/allowReservedに従います。 - セキュリティスキーム — API キー(header/query/cookie)、HTTP bearer、HTTP basic に対応します。
- ボディ形式 — JSON、プレーンテキスト、URL エンコードフォーム、
multipart/form-data。 $refの解決 — ドキュメント内の JSON Pointer 参照をキャッシュし、参照の連鎖と循環を扱います。- 例の自動生成 — JSON Schema の
example、enum、default、型、形式、制約から値を推論します。 - プラグイン —
register()またはuse()で独自のジェネレーターを登録できます。
仕組み
OpenAPI document ──normalize──▶ RequestIR ──generator.generate()──▶ source code string
normalizeは$refを解決し、パスと操作のパラメーターを統合し、ボディのメディアタイプを選び、例の値を生成し、セキュリティスキームを解決して、正規化されたRequestIRを作ります。- 選択した
GeneratorがRequestIRを受け取り、実行可能なソースコード文字列を返します。
通常は generate({...}) を呼ぶだけで、両方の処理を実行できます。
基本例
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
次のステップ
- インストール — npm / yarn / pnpm とブラウザーでの利用。
- クイックスタート — 最初のコード例を生成し、ジェネレーターを一覧表示。
- 設定 —
GenerateOptions、RequestIR、Generator、Plugin。 - API リファレンス — 全エクスポートと、言語・クライアントの完全な一覧。
- 使用例 — fetch、Python requests、cURL、独自ジェネレーター、プラグイン、
RequestIRの直接利用。