docfy generate-client

OpenAPIドキュメントから型付きのTypeScriptクライアントを生成します。ゼロから作るコードジェネレーターではなく、openapi-typescriptとopenapi-fetchの薄いラッパーです。

使い方

bash
npx nestjs-docfy generate-client --spec <path-or-url> [options]

コードジェネレーターを再実装する代わりに、確立された2つのライブラリをラップしています。openapi-typescript(型)とopenapi-fetch(それらを利用するランタイムクライアント)です。

オプション

OptionDefaultDescription
--spec <path|url>(required)A local openapi.json, or a URL (e.g. a running app's /api-json)
--out <path>./generated-clientOutput directory for schema.d.ts and client.ts
--root <path>.Project root directory
--quietfalseSuppress all output except errors

書き出される内容

出力ディレクトリに2つのファイルが書き出されます。

  • schema.d.ts: the generated types (paths, components, operations), via openapi-typescript.
  • client.ts: a small wrapper exporting createApiClient(baseUrl), typed against schema.d.ts.

生成されたクライアントを使う

生成されたclient.tsだけがそれをインポートするため、openapi-fetchnestjs-docfy自体の依存関係ではありません。ご自身のプロジェクトにインストールしてください。

bash
npm install openapi-fetch
ts
import { createApiClient } from './generated-client/client';

const api = createApiClient('https://api.example.com');
const { data, error } = await api.GET('/users/{id}', { params: { path: { id: '123' } } });