Skip to main content

HTTP

This page shows how you can use the HTTP connection to request or proxy internal APIs.

Request

<?php

use Fusio\Worker;
use Fusio\Engine;
use Psr\Log\LoggerInterface;

return function(Worker\ExecuteRequest $request, Worker\ExecuteContext $context, Engine\ConnectorInterface $connector, Engine\Response\FactoryInterface $response, Engine\DispatcherInterface $dispatcher, LoggerInterface $logger) {
/** @var \GuzzleHttp\Client $client */
$client = $connector->getConnection('Http');

$resp = $client->request('POST', '/my_api', [
'json' => ['my_payload' => 'foobar']
]);

if ($resp->getStatusCode() !== 200) {
return $response->internalServerError('Could not call internal API');
}

$data = \json_decode((string) $resp->getBody());

return $response->ok($data);
};

Proxy

<?php

use Fusio\Worker;
use Fusio\Engine;
use Psr\Log\LoggerInterface;

return function(Worker\ExecuteRequest $request, Worker\ExecuteContext $context, Engine\ConnectorInterface $connector, Engine\Response\FactoryInterface $response, Engine\DispatcherInterface $dispatcher, LoggerInterface $logger) {
/** @var \GuzzleHttp\Client $client */
$client = $connector->getConnection('Http');

$resp = $client->request('POST', '/my_api', [
'json' => ['my_payload' => 'foobar']
]);

return $response->proxy($resp);
};