heyapi について
heyapi は、Hey API と `@hey-api/openapi-ts` を使う TypeScript プロジェクト向けのコーディングスキルです。クライアント生成、設定、プラグイン利用、生成コードの検証を案内します。
主な機能
- 01OpenAPI からの TypeScript クライアント生成
- 02プラグインとバリデーターの設定
- 03HTTP クライアントと認証の設定
- 04生成物と移行の確認
- 05コード生成結果の検証
活用シーン
- 01OpenAPI 仕様から TypeScript API 層を生成
- 02TanStack Query や検証プラグインの設定
- 03Hey API の更新と移行対応
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill heyapiインストール後、Claude Code で/heyapiを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/clients-sdk.mdoutput-migration.mdplugins-validators.mdsetup-config.mdsource-map.md詳細
Hey API
Hey API/@hey-api/openapi-ts に関わる作業では、このスキルを使用してください。対象には、OpenAPI からの TypeScript クライアント生成、プラグインの設定、HTTP クライアントの接続、バリデーター、TanStack Query の生成物、API レイヤーの再生成が含まれます。
ワークフロー
- コードを変更する前に、ローカルの Hey API の状況を確認します。
@hey-api/openapi-ts(最新の安定版は0.99.0。nextのスナップショットビルドは対象外)、@hey-api/vite-plugin、クライアントパッケージ、バリデーター(zod/valibot)、TanStack Query のパッケージバージョン。- 設定ファイル:
openapi-ts.config.ts(または.js/.mjs/.cjs)と、Vite プラグインの統合状況。 - 仕様の入力元:ローカルパス、リモート URL、レジストリーの省略表記(
hey-api/...、scalar:...、readme:...)、またはインラインオブジェクト。 - 出力フォルダーの内容(
*.gen.ts、client/、core/)と、コンシューマーがindex.tsまたは個別の生成ファイルからインポートしているかどうか。 - 実行時の接続設定:
client.setConfig、runtimeConfigPath/createClientConfig、認証、インターセプター、呼び出しごとのclientオーバーライド。
- ユーザーが最新の動作を求めている場合、インストール済みのバージョンが不明な場合、または移行、プラグイン API、Node/ランタイム要件に関わる作業では、ドキュメントを最新の状態にします。source-map.md から確認を始めてください。
- インストール、CLI、
defineConfig、入力/出力、複数ジョブの設定、Vite については、setup-config.md を参照してください。 - HTTP クライアント、SDK の形式、認証、インターセプター、
throwOnError、生成された関数の利用については、clients-sdk.md を参照してください。 - Zod/Valibot、TanStack Query、トランスフォーマー/バリデーター、Web フレームワーク用プラグインについては、plugins-validators.md を参照してください。
- 出力の構成、エクスポートのエントリーポイント、破壊的変更の確認については、output-migration.md を参照してください。
- 既存のプロジェクトのスタイルに沿って実装します。
*.gen.tsや、client//core/にまとめられた足場コードを手作業で編集するより、再生成を優先してください。- アプリに必要なプラグインだけを組み合わせます。デフォルトで TypeScript と SDK(Fetch)が生成されます。
- プロジェクトでバージョン範囲を意図的に追跡している場合を除き、
@hey-api/openapi-tsのバージョンを厳密に固定してください。 - スクリプトを追加する際、コマンド例では
bun/bunxを優先してください。
判断基準
- OpenAPI 仕様を契約として扱います。仕様から修正または再生成し、生成ファイルへのローカルな編集で差異を取り繕わないでください。
- 出力フォルダーは依存対象として扱います。次回のコード生成で内容が消去されます。
- デフォルトのクライアントは Fetch(
@hey-api/client-fetch)です。実行環境で必要な場合に限り、Axios、Ky、Next.js、Nuxt、OFetch、Angular を選択してください。 - SDK のレスポンスは通常
{ data, error }です。ただし、throwOnErrorが SDK プラグインではなくクライアントプラグインで有効になっている場合は異なります。 - SDK の
validator/transformerは、実行時の検証または変換が意図されている場合にのみ有効にしてください。処理コストがかかり、バリデータープラグインも追加されます。 - React Query では、SDK 呼び出しを手作業で再ラップするより、生成された
*Options()/*Mutation()ヘルパーをuseQuery/useMutationに展開して使う方法を優先してください。 - ウォッチモードはリモート URL の入力に対応しています。ローカルファイルの監視も使えるとは限りません。
- Node.js
>= 22.18.0が必要です(v0.98 以降。v0.96~v0.97 では>= 22.13.0が必要でした)。v0.91 以降、パッケージは ESM 専用です。 - Python のコード生成はまだ本番運用に適していません。このスキルでは TypeScript の
@hey-api/openapi-tsを対象としてください。
検証
リポジトリに既存のチェックがあれば、それを優先してください。Hey API に関わる重要な作業では、関連する項目を選んで確認してください。
- プロジェクトの
openapi-tsスクリプトで再生成し、生成された出力に対する差分ポリシーを満たしていることを確認します。 - SDK 関数、クエリーオプション、Zod/Valibot スキーマを使用する側の型チェックを実行します。
- 成功パスとエラーパスをそれぞれ 1 つ確認します(
dataとerrorのどちらが返るか、またはthrowOnErrorが有効な場合は例外がスローされること)。 - 実際の、またはモックのエンドポイントに対して、
baseUrl/baseURL(クライアント固有)、認証、インターセプターを確認します。 - アップグレード後は、マージ前に、またいだバージョンに対応する 移行ガイド を読んでください。
コメント
Markdown 対応