docfy generate-client
从 OpenAPI 文档生成带类型的 TypeScript 客户端,是 openapi-typescript 和 openapi-fetch 的一层薄封装,不是从零实现的代码生成器。
用法
bash
npx nestjs-docfy generate-client --spec <path-or-url> [options]这里没有重新实现一个代码生成器,而是封装了两个成熟的库:负责类型的 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 |
生成了什么
输出目录下会写入两个文件:
schema.d.ts: the generated types (paths,components,operations), viaopenapi-typescript.client.ts: a small wrapper exportingcreateApiClient(baseUrl), typed againstschema.d.ts.
使用生成的客户端
openapi-fetch 不是 nestjs-docfy 本身的依赖,因为只有生成出来的 client.ts 会导入它,所以需要在你自己的项目里单独安装:
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' } } });