1. Go to this page and download the library: Download gajosu/laravel-http-service library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
gajosu / laravel-http-service example snippets
use Gajosu\LaravelHttpClient\Facades\HttpService;
/** @var \Gajosu\LaravelHttpClient\Request\ApiRequestBuilder $builder */
$builder = HttpService::request()
->setMethod('POST')
//set base url
->setBaseUri('http://example.com')
//set path
->setPath('/test')
// set headers
->setHeaders([
'Authorization' => 'Basic {YOUR_TOKEN}'
])
//set queries strings
->setQuery([
'query1' => 'param'
])
//set body
->setBody([
'field1' => 'value'
]);
// send the request and get response
/** @var \Gajosu\LaravelHttpClient\Response\ApiResponse $response */
$response = $builder->send();
// json data decoded
$data = $response->json();
namespace App\Services\MyService;
use Gajosu\LaravelHttpClient\HttpService;
use Gajosu\LaravelHttpClient\Contracts\HttpRequestBuilder;
class MyService extends HttpService
{
private ?string $access_token = null;
public function setAccessToken(string $access_token): void
{
$this->access_token = $access_token;
}
public function getAccessToken(): ?string
{
return $this->access_token;
}
public function getBuilder(): HttpRequestBuilder
{
return parent::getBuilder()
->setBaseUri('http://myservice.com')
->setHeaders([
"Authorization" => "Basic {$this->access_token}"
]);
}
}
use App\Services\MyService\Facades\MyService;
MyService::setAccessToken('{YOUR_TOKEN}');
$response = MyService::request()
->setMethod('GET')
->setPath('/test')
->setQuery([
'query1' => 'param'
])
//you can set the cache time in seconds
->cacheFor(60)
// or
// ->cacheFor(now()->addMinutes(1))
// you can also keep the cache forever
// ->cacheForever()
->send();
$data = $response->json();