guzzlehttp/guzzle-services
Guzzle Services adds a command layer on top of Guzzle using service descriptions to define operations, serialize requests, and parse responses into convenient model structures. Build typed clients from descriptions, call operations as methods, and get structured results.
php artisan api:test).guzzle:call commands).webonyx/graphql-php or graphql-php/graphql-php).spatie/async or AWS SDK).For Executives: *"This package cuts API integration time in half by auto-generating PHP clients from service descriptions. For example:
For Engineering: *"Guzzle Services turns API docs into reusable PHP classes with zero manual mapping. Key benefits:
php artisan api:call stripe.charges.create).
Downsides: Not for async/GraphQL, but for structured APIs, it’s a 10x productivity boost over raw Guzzle calls.
Example Use Case:// Before: Manual JSON serialization/deserialization
$response = Http::post('https://api.stripe.com/charges', [
'headers' => ['Authorization' => 'Bearer $token'],
'json' => ['amount' => 1000, 'currency' => 'usd'],
]);
$charge = json_decode($response->body(), true);
// After: Auto-generated, validated client
$stripe = new StripeClient($description);
$charge = $stripe->createCharge(['amount' => 1000, 'currency' => 'usd']); // Validated!
```"*
**For Product Managers**:
*"This tool **reduces dependency on engineering** for API integrations. Teams can:
- **Prototype faster**: Spin up API clients in hours, not days.
- **Document implicitly**: Service descriptions act as living API specs.
- **Debug easily**: CLI tools let non-devs test endpoints (e.g., `guzzle:call stripe.refund`).
*Ideal for*: Payment flows, SaaS connectors, or any feature requiring third-party APIs."*
How can I help you explore Laravel packages today?