Easily access Flora based APIs.
$client = new \Flora\Client('http://api.example.com/');
$response = $client->execute([
'resource' => 'foo',
'select' => 'id,name'
]);
Return PSR-7 response object (e.g. to handle binary data).
$client = new \Flora\Client('http://api.example.com/');
$response = $client->executeRaw([
'resource' => 'article',
'id' => 1337,
'action' => 'pdf',
]);
use GuzzleHttp\Promise;
$client = new \Flora\Client('http://api.example.com/');
try {
$fooPromise = $client->executeAsync([
'resource' => 'foo',
'select' => 'id,name'
]);
$barPromise = $client->executeAsync([
'resource' => 'bar',
'select' => 'id,name'
]);
[$fooResponse, $barResponse] = Promise\Utils::unwrap([$fooPromise, $barPromise]);
// process responses...
} catch (Throwable $e) {
echo $e->getMessage(), PHP_EOL;
}
Simple interface for simultaneously executing multiple API requests. Basically hides complexity from example above.
$client = new \Flora\Client('http://api.example.com/');
try {
[$fooResponse, $barResponse] = $client->executeParallel([
['resource' => 'foo', 'select' => 'id,name'],
['resource' => 'bar', 'select' => 'id,name']
]);
// process responses...
} catch (Throwable $e) {
echo $e->getMessage(), PHP_EOL;
}