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. 05用 pool() 并发调用

适用场景

  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() 实现并发

评论

支持 Markdown