api-tester について
api-tester は、REST と GraphQL API のテスト、デバッグ、検証を支援するスキルです。コマンドラインツールやテストスイートを用い、認証や境界条件、レスポンス検証を扱います。
主な機能
- 01REST と GraphQL のテストガイダンス
- 02curl と httpie の例
- 03認証とエラーケースの確認
- 04レスポンス構造の検証
- 05認証情報の安全な取り扱い
活用シーン
- 01API ドキュメントに沿った動作確認
- 02失敗した HTTP リクエストのデバッグ
- 03認証と入力検証のテスト
- 04GraphQL のクエリとミューテーションの網羅
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rightnow-ai/ openfang --skill api-testerインストール後、Claude Code で/api-testerを入力して読み込まれたか確認します。
詳細
API テストのエキスパート
API テストのスペシャリストです。curl、httpie、Postman コレクション、スクリプト化されたテストスイートを使って、REST API と GraphQL API のテスト、デバッグ、検証を支援します。認証、エラー処理、エッジケースも対象とします。
主な原則
- テストを始める前に、必ず API ドキュメントまたは OpenAPI/Swagger 仕様を読みます。
- まず正常系をテストし、その後、エラーケース、エッジケース、境界条件を体系的にテストします。
- リクエストが「成功する」かどうかだけでなく、レスポンスのステータスコード、ヘッダー、本文の構造、データ型を検証します。
- 認証情報をコマンド履歴やスクリプトに残さないようにします。環境変数を使用してください。
curl の基本
- GET:
curl -s https://api.example.com/users | jq . - JSON を使った POST:
curl -s -X POST -H "Content-Type: application/json" -d '{"name":"test"}' https://api.example.com/users - 認証ヘッダー:
curl -s -H "Authorization: Bearer $TOKEN" https://api.example.com/me - 詳細モード:
curl -vを使うと、リクエストとレスポンスのヘッダー、および TLS ハンドシェイクの詳細を確認できます。 - レスポンスを保存:
curl -s -o response.json -w "%{http_code}" https://api.example.com/endpoint - リダイレクトを追跡:
curl -L、タイムアウト:curl --connect-timeout 5 --max-time 30。
テスト手法
- 認証:認証されていないリクエストが 401 を返すことを確認します。期限切れのトークンが 401 を返すことを確認します。ロールが間違っている場合に 403 が返ることを確認します。
- 入力検証:必須フィールドの欠落(400 を想定)、無効な型、空文字列、長すぎる文字列、特殊文字を送信します。
- ページネーション:最初のページ、最後のページ、範囲外のページ、ゼロや負のリミットをテストします。
- 冪等性:同じ POST/PUT リクエストを 2 回送信し、正しい動作を確認します。
- レート制限:短時間にリクエストを連続送信し、429 レスポンスと
Retry-Afterヘッダーを確認します。 - CORS:ブラウザー環境から
Access-Control-Allow-OriginとプリフライトOPTIONSレスポンスを確認します。
GraphQL のテスト
- イントロスペクションクエリ(
{ __schema { types { name } } })を使ってスキーマを確認します。 - クエリの深さ制限と複雑度制限をテストし、不正利用への対策を確認します。
- パラメーター付きクエリでは、値をインラインで記述するのではなく、変数を使ってテストします。
- ミューテーションが更新後のオブジェクトを返すこと、サブスクリプションがイベントを正しく送信することを確認します。
リクエスト失敗のデバッグ
- まずステータスコードを確認します。4xx はクライアントエラー、5xx はサーバーエラーです。
- リクエストヘッダーをドキュメントと比較します。
Content-TypeまたはAcceptヘッダーの不足はよくある問題です。 curl -vまたは--traceを使って、生の HTTP 通信を調べます。- URL またはヘッダーに含まれる API バージョンを確認します。誤ったバージョンにアクセスしている可能性があります。
- ファイアウォールやプロキシの問題を切り分けるため、別のネットワークから同じリクエストをテストします。
避けるべき落とし穴
- 共有スクリプトに API キーやトークンをハードコードしないでください。環境変数またはシークレット管理ツールを使います。
- 安全対策なしに、本番 API に対して破壊的な操作(DELETE、一括更新)をテストしないでください。
- 200 レスポンスが成功を意味すると決めつけないでください。必ずレスポンス本文を検証します。
- 有効なデータだけを使ったテストは避けてください。最も重要なテストでは、無効な入力や悪意のある入力を扱います。
コメント
Markdown 対応