关于 laravel:http-client-resilience
laravel:http-client-resilience 是一项用于设计可预测、可观测 Laravel 出站 HTTP 调用的技能,面向需要控制超时、重试和请求日志的开发者。
主要功能
- 01显式设置请求超时
- 02对临时故障限制重试
- 03通过依赖注入便于测试
- 04记录请求与响应上下文
- 05用 pool() 并发调用
适用场景
- 01为出站 API 调用设置超时
- 02重试临时请求故障
- 03通过注入依赖测试 HTTP 集成
- 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