关于 orval
orval 是面向开发者的实践指南,帮助根据 OpenAPI 规范生成类型安全的 TypeScript 客户端。规则按优先级组织,涵盖配置、查询库钩子、验证、模拟和测试。
主要功能
- 01涵盖 8 类的 42 条规则
- 02OpenAPI 与配置优先级建议
- 03React Query、SWR 和 Vue Query 集成
- 04自定义 mutator 与类型验证
- 05MSW 模拟生成与测试
适用场景
- 01为新项目配置 Orval
- 02根据 OpenAPI 生成 TypeScript 客户端
- 03将生成的钩子接入查询库
- 04设置 API 模拟与测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill orval安装后在 Claude Code 中输入/orval确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
AGENTS.mdmetadata.jsonREADME.mdassets/templates/_template.mdreferences/_sections.mdadv-form-data-handling.mdadv-input-transformer.mdadv-operation-override.mdadv-output-transformer.mdmock-delay-config.mdmock-http-status.mdmock-index-files.mdmock-msw-generation.mdmock-use-examples.mdmutator-body-wrapper.mdmutator-custom-instance.mdmutator-error-types.mdmutator-fetch-client.mdmutator-interceptors.mdmutator-token-refresh.mdoquery-hook-options.mdoquery-infinite-queries.mdoquery-key-export.mdoquery-mutation-callbacks.mdoquery-signal-cancellation.mdoquery-suspense-support.mdorvalcfg-baseurl-setup.mdorvalcfg-client-selection.mdorvalcfg-input-validation.mdorvalcfg-mode-selection.md详细介绍
Orval OpenAPI 最佳实践
使用 Orval 根据 OpenAPI 规范生成类型安全的 TypeScript 客户端的综合指南。包含 8 个类别中的 42 条规则,并按影响排序,为自动化配置、客户端生成和测试设置提供指导。
适用场景
在以下情况下参考这些指南:
- 为新项目配置 Orval
- 设置基于 OpenAPI 的 TypeScript 客户端生成
- 将 React Query、SWR 或 Vue Query 与生成的钩子集成
- 为身份验证和错误处理创建自定义 mutator
- 为测试生成 MSW 模拟
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | OpenAPI 规范质量 | CRITICAL | spec- |
| 2 | 配置架构 | CRITICAL | orvalcfg- |
| 3 | 输出结构与组织 | HIGH | output- |
| 4 | 自定义客户端与 Mutator | HIGH | mutator- |
| 5 | 查询库集成 | MEDIUM-HIGH | oquery- |
| 6 | 类型安全与验证 | MEDIUM | types- |
| 7 | 模拟生成与测试 | MEDIUM | mock- |
| 8 | 高级模式 | LOW | adv- |
快速参考
1. OpenAPI 规范质量(CRITICAL)
spec-operationid-unique- 使用唯一且具有描述性的 operationIdspec-schemas-reusable- 在 components 中定义可复用的 schemasspec-tags-organization- 使用 tags 组织操作spec-response-types- 明确定义所有响应类型spec-required-fields- 明确标记必填字段
2. 配置架构(CRITICAL)
orvalcfg-mode-selection- 根据 API 大小选择输出模式orvalcfg-client-selection- 根据框架要求选择客户端orvalcfg-separate-schemas- 将 schemas 分离到专用目录中orvalcfg-input-validation- 在生成前验证 OpenAPI 规范orvalcfg-baseurl-setup- 正确配置基础 URLorvalcfg-prettier-format- 启用自动代码格式化
3. 输出结构与组织(HIGH)
output-file-extension- 为生成的代码使用不同的文件扩展名output-index-files- 生成 index 文件,便于清晰导入output-naming-convention- 配置统一的命名约定output-clean-target- 启用清理模式,确保重新生成结果一致output-headers-enabled- 在生成的函数中启用 headers
4. 自定义客户端与 Mutator(HIGH)
mutator-custom-instance- 使用自定义 mutator 配置 HTTP 客户端mutator-error-types- 从 mutator 导出自定义错误类型mutator-body-wrapper- 导出用于请求转换的 body 类型包装器mutator-interceptors- 使用拦截器处理横切关注点mutator-token-refresh- 在 mutator 中处理令牌刷新mutator-fetch-client- 使用 fetch mutator 减小打包体积
5. 查询库集成(MEDIUM-HIGH)
oquery-hook-options- 全局配置默认查询选项oquery-key-export- 导出查询键以便失效缓存oquery-infinite-queries- 为分页端点启用无限查询oquery-suspense-support- 启用 suspense 模式,提供流式 UXoquery-signal-cancellation- 传递 AbortSignal 以取消请求oquery-mutation-callbacks- 使用生成的 mutation 选项类型
6. 类型安全与验证(MEDIUM)
types-zod-validation- 生成 Zod schemas 以进行运行时验证types-zod-strict- 启用 Zod strict 模式,确保更安全的验证types-zod-coerce- 使用 Zod 强制转换进行类型转换types-use-dates- 启用 useDates 以生成 Date 类型types-bigint-support- 启用 useBigInt 以支持大整数
7. 模拟生成与测试(中)
mock-msw-generation- 生成用于测试的 MSW 处理程序mock-use-examples- 使用 OpenAPI 示例创建逼真的模拟mock-delay-config- 配置模拟响应延迟mock-http-status- 为所有 HTTP 状态码生成模拟mock-index-files- 生成模拟索引文件,便于设置
8. 高级模式(低)
adv-input-transformer- 使用输入转换器预处理规范adv-operation-override- 按操作覆盖设置adv-output-transformer- 使用输出转换器修改生成的代码adv-form-data-handling- 配置表单数据序列化
使用方法
阅读各个参考文件,了解详细说明和代码示例:
- 章节定义 - 类别结构和影响级别
- 规则模板 - 添加新规则的模板
- 示例:spec-operationid-unique
相关技能
- 如需使用生成的钩子,请参阅
tanstack-query技能 - 如需模拟生成的 API 客户端,请参阅
test-msw技能 - 如需进行架构验证,请参阅
zod技能
完整编译文档
如需查看包含所有展开规则的完整指南:AGENTS.md
评论
支持 Markdown