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(それらを利用するランタイムクライアント)です。
オプション
| Option | Default | Description |
|---|---|---|
--spec <path|url> | (required) | A local openapi.json, or a URL (e.g. a running app's /api-json) |
--out <path> | ./generated-client | Output directory for schema.d.ts and client.ts |
--root <path> | . | Project root directory |
--quiet | false | Suppress all output except errors |
書き出される内容
出力ディレクトリに2つのファイルが書き出されます。
schema.d.ts: the generated types (paths,components,operations), viaopenapi-typescript.client.ts: a small wrapper exportingcreateApiClient(baseUrl), typed againstschema.d.ts.
生成されたクライアントを使う
生成されたclient.tsだけがそれをインポートするため、openapi-fetchはnestjs-docfy自体の依存関係ではありません。ご自身のプロジェクトにインストールしてください。
bash
npm install openapi-fetchts
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' } } });