mcpField
L
laravel:http-client-resilience

laravel:http-client-resilience

github.com/jpcaparas開発157134 回インストール18 週間前に更新
リポジトリ

laravel:http-client-resilience について

laravel:http-client-resilienceは、予測しやすく観測可能なLaravelの外向きHTTP呼び出しを設計するスキルです。タイムアウトや再試行、リクエストログを制御する必要がある開発者向けです。

主な機能

  1. 01リクエストのタイムアウト設定
  2. 02一時的な障害に対する回数制限付き再試行
  3. 03テストしやすい依存性注入
  4. 04リクエストとレスポンスのコンテキスト付きログ
  5. 05pool()による並行呼び出し

活用シーン

  1. 01外向きAPI呼び出しにタイムアウトを設定
  2. 02一時的なリクエスト障害を再試行
  3. 03依存性注入を使ってHTTP連携をテスト
  4. 04複数のエンドポイントを並行して呼び出す

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jpcaparas/superpowers-laravel --skill laravel:http-client-resilience

インストール後、Claude Code で/laravel:http-client-resilienceを入力して読み込まれたか確認します。

詳細

HTTP クライアントの回復性

外部への呼び出しは、予測可能で、監視できるように設計します。

コマンド

use Illuminate\Support\Facades\Http;

$res = Http::baseUrl(config('services.foo.url'))
    ->timeout(5)
    ->retry(3, 200, throw: false)
    ->withHeaders(['Accept' => 'application/json'])
    ->get('/v1/things', ['q' => 'bar']);

if (!$res->successful()) {
    Log::warning('foo api failure', [
        'status' => $res->status(),
        'body' => substr($res->body(), 0, 500),
    ]);
}

パターン

  • タイムアウトを明示的に設定します(クライアントとサーバーではデフォルトが異なります)
  • 一時的な障害に限り、バックオフを設けた回数制限付きの再試行を使用します
  • テストしやすくするため、依存性の注入を優先します
  • リクエストとレスポンスのコンテキストをログに追加します(機密データはマスキングしてください)
  • 複数のエンドポイントを呼び出す場合は、並行処理に pool() を使用します

コメント