SuperAPI AI 工具集

openapi-ts-v0

编程与开发

查看项目

更新于 10-15 17:27

技能介绍

用途:从 OpenAPI 3.0 规范生成 TypeScript 客户端,使用 @hey-api/openapi-ts,实现类型安全的 API 调用。不涵盖编写 OpenAPI 规范或 API 服务端实现。

主要能力:客户端方法依据 OpenAPI 规范完全类型化;错误响应依据 OpenAPI 错误 schema 类型化;通过 createClient 工厂实例化客户端;可在配置文件中设置输出格式与 schema 类型;Zod schema 与生成的 React Query 插件为可选附加项。默认输出仅包含类型与客户端,React Query hooks 由使用方手写。

使用方式:使用 openapi-ts.config.ts 配置,示例:import { defineConfig } from '@hey-api/openapi-ts';export default defineConfig({ input: './openapi.json', output: { path: './src/gen', format: 'prettier' }, types: { enums: 'typescript' } })。生成后调用:import { createClient } from './gen/client';const client = createClient({ baseUrl: 'https://api.example.com' });const response = await client.GET('/users/{id}', { params: { path: { id: '123' } } });需处理 response.error 以获得类型化错误,response.data 依据规范类型化。

适用场景:需要从 OpenAPI 规范生成 TypeScript 客户端的项目,可与 fastify 生成的规范、next 及 TanStack Query 配合。

限制与约束:假定 @hey-api/openapi-ts v0+、OpenAPI 3.0、TypeScript v5+ 严格模式。必须使用 openapi-ts.config.ts 配置,使用前先生成客户端,并处理 response.error。建议使用 Prettier 格式化、生成 TypeScript 枚举、手写 TanStack Query hooks;仅在需要运行时校验时添加 Zod schema,仅在项目选择加入时使用生成的 React Query 插件。避免手动编辑生成代码、不处理错误即使用生成客户端、混用生成与手写客户端代码。其他细节暂未提供。