mcpField
H
Hey API Codegen

Hey API Codegen

github.com/blockmatic开发42 次安装
代码仓库

关于 Hey API Codegen

Hey API Codegen 是基于 `@hey-api/openapi-ts` 的 TypeScript 客户端生成技能,面向使用 OpenAPI 3.0 的开发者。它强调从规范生成类型化客户端、错误类型和可选的 Zod 运行时校验。

主要功能

  1. 01从 OpenAPI 3.0 生成 TypeScript 客户端
  2. 02生成类型化客户端方法与错误响应
  3. 03支持 Zod 运行时校验
  4. 04通过 `openapi-ts.config.ts` 配置输出

适用场景

  1. 01为 OpenAPI 定义的 API 生成客户端
  2. 02在 TypeScript 项目中调用 API
  3. 03使用 Zod 对 API 数据进行运行时校验

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/blockmatic/basilic --skill hey-api-codegen

安装后在 Claude Code 中输入/hey-api-codegen确认已加载。

附带文件references/react-query-integration.mdtemplates/openapi-ts.config.ts

详细介绍

技能:openapi-ts

适用范围

  • 适用于:使用 @hey-api/openapi-ts 从 OpenAPI 3.0 规范生成 TypeScript 客户端
  • 不涵盖:编写 OpenAPI 规范、实现 API 服务端(参见 fastify)

前提条件

  • @hey-api/openapi-ts v0+
  • OpenAPI 3.0 规范格式
  • TypeScript v5+,并启用 strict 模式
  • 用于运行时验证的 Zod(使用 Zod 架构时)

原则

  • 从 OpenAPI 规范生成客户端(单一事实来源)
  • 使用生成的 Zod 架构进行运行时验证
  • 客户端方法根据 OpenAPI 规范提供完整类型
  • 错误响应根据 OpenAPI 错误架构提供类型
  • 使用 createClient 工厂实例化客户端
  • 在配置文件中设置输出格式和架构类型

约束

必须
  • 使用 openapi-ts.config.ts 进行配置
  • 在代码中使用客户端前先生成客户端
  • 处理 response.error,以使用带类型的错误响应
应当
  • 使用 Zod 架构(schemas.type: 'zod')进行运行时验证
  • 使用 Prettier 格式化(output.format: 'prettier')
  • 生成 TypeScript 枚举(types.enums: 'typescript')
避免
  • 手动编辑生成的代码
  • 不进行错误处理就使用生成的客户端
  • 混用生成的客户端代码和手写客户端代码

交互

模式

配置模式
// 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',
  },
  schemas: {
    type: 'zod',
  },
})
客户端使用模式
import { createClient } from './gen/client'

const client = createClient({
  baseUrl: 'https://api.example.com',
})

const response = await client.GET('/users/{id}', {
  params: { path: { id: '123' } },
})

if (response.error) {
  // Handle typed error
  return
}

// response.data is typed from OpenAPI spec

完整示例请参见 配置模板。

参考资料

评论

支持 Markdown