orval について
orvalは、OpenAPI仕様から型安全なTypeScriptクライアントを生成する開発者向けのベストプラクティススキルです。優先度付きのルールで、設定、クエリライブラリのフック、検証、モック、テストを扱います。
主な機能
- 018カテゴリ、42件のルール
- 02OpenAPIと設定の優先度別ガイド
- 03React Query、SWR、Vue Queryとの連携
- 04カスタムmutatorと型検証
- 05MSWモック生成とテスト
活用シーン
- 01新規プロジェクトでのOrval設定
- 02OpenAPIからのTypeScriptクライアント生成
- 03生成フックとクエリライブラリの連携
- 04APIモックとテストの設定
インストール
コマンドをコピーしてターミナルで実行します。
$
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 を、生成されたフックと統合するとき
- 認証やエラー処理のためのカスタムミューテーターを作成するとき
- テスト用に MSW モックを生成するとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | OpenAPI 仕様の品質 | CRITICAL | spec- |
| 2 | 設定アーキテクチャ | CRITICAL | orvalcfg- |
| 3 | 出力構造と整理 | HIGH | output- |
| 4 | カスタムクライアントとミューテーター | HIGH | mutator- |
| 5 | クエリーライブラリとの統合 | MEDIUM-HIGH | oquery- |
| 6 | 型安全性と検証 | MEDIUM | types- |
| 7 | モック生成とテスト | MEDIUM | mock- |
| 8 | 高度なパターン | LOW | adv- |
クイックリファレンス
1. OpenAPI 仕様の品質(CRITICAL)
spec-operationid-unique- 一意で説明的な operationId を使用するspec-schemas-reusable- 再利用可能なスキーマを components で定義するspec-tags-organization- タグを使ってオペレーションを整理するspec-response-types- すべてのレスポンスタイプを明示的に定義するspec-required-fields- 必須フィールドを明示的に指定する
2. 設定アーキテクチャ(CRITICAL)
orvalcfg-mode-selection- API の規模に基づいて出力モードを選択するorvalcfg-client-selection- フレームワークの要件に基づいてクライアントを選択するorvalcfg-separate-schemas- スキーマを専用ディレクトリに分けるorvalcfg-input-validation- 生成前に OpenAPI 仕様を検証するorvalcfg-baseurl-setup- ベース URL を適切に設定するorvalcfg-prettier-format- コードの自動フォーマットを有効にする
3. 出力構造と整理(HIGH)
output-file-extension- 生成コードには専用のファイル拡張子を使用するoutput-index-files- インポートを整理するために index ファイルを生成するoutput-naming-convention- 一貫した命名規則を設定するoutput-clean-target- 一貫した再生成のためにクリーンモードを有効にするoutput-headers-enabled- 生成された関数でヘッダーを有効にする
4. カスタムクライアントとミューテーター(HIGH)
mutator-custom-instance- HTTP クライアントの設定にカスタムミューテーターを使用するmutator-error-types- ミューテーターからカスタムエラー型をエクスポートするmutator-body-wrapper- リクエスト変換用のボディ型ラッパーをエクスポートするmutator-interceptors- 横断的な関心事にはインターセプターを使用するmutator-token-refresh- ミューテーターでトークンのリフレッシュを処理するmutator-fetch-client- バンドルサイズを小さくするために fetch ミューテーターを使用する
5. クエリーライブラリとの統合(MEDIUM-HIGH)
oquery-hook-options- デフォルトのクエリーオプションをグローバルに設定するoquery-key-export- キャッシュ無効化用にクエリーキーをエクスポートするoquery-infinite-queries- ページネーション対応エンドポイントで無限クエリーを有効にするoquery-suspense-support- ストリーミング UX のためにサスペンスモードを有効にするoquery-signal-cancellation- リクエストのキャンセル用に AbortSignal を渡すoquery-mutation-callbacks- 生成されたミューテーションオプションの型を使用する
6. 型安全性と検証(MEDIUM)
types-zod-validation- 実行時検証用に Zod スキーマを生成するtypes-zod-strict- より安全な検証のために Zod の strict モードを有効にするtypes-zod-coerce- 型変換に Zod の coercion を使用するtypes-use-dates- Date 型の生成に useDates を有効にする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 対応