poc-api-proxy/proxy.php
2017-10-23 22:31:07 +02:00

56 lines
1.1 KiB
PHP

<?php
use Phly\Http\Response;
use GuzzleHttp\Client;
use Phly\Http\ServerRequestFactory;
use Phly\Http\ServerRequest;
require __DIR__.'/vendor/autoload.php';
function send(Response $response)
{
http_response_code($response->getStatusCode());
foreach ($response->getHeaders() as $header => $values) {
header(sprintf('%s: %s', $header, implode(', ', $values)));
}
echo $response->getBody();
}
function doRequest(ServerRequest $request, Client $client)
{
$headers = [];
foreach ($request->getHeaders() as $name => $value) {
$headers[$name] = $value[0];
}
$url = sprintf(
'https://bittrex.com/api/v1.1/%s',
ltrim($request->getServerParams()['PATH_INFO'], '/')
);
unset($headers['host']);
return $client->request(
$request->getMethod(),
$url,
[
'headers' => $headers,
'body' => $request->getBody(),
]
);
}
$apiResponse = doRequest(
ServerRequestFactory::fromGlobals(),
new Client()
);
send(new Response(
$apiResponse->getBody(),
$apiResponse->getStatusCode(),
$apiResponse->getHeaders()
));