Makes requests to API and allows to decode response to objects
Written for Wolnościowiec as a bridge between microservices and comrades who wants to share the anarchist events, articles and news.
composer require wolnosciowiec/comrade-reader
composer dump-autoload -o
Given we have an API method "/colors/by-name/{{ colorName }}" on external server that is returning:
{
"success": true,
"data": {
"id": 1,
"color": "Black & Red"
}
}
<?php
namespace Example;
// Color.php
class Color
{
protected $id;
protected $colorName;
// getter, setter...
}
// ColorRepository.php
class ColorRepository extends AbstractApiRepository
{
public function getColorByName($colorName)
{
return $this->reader->request('GET', '/colors/by-name/' . $this->escape($colorName), '', 3600)
->decode(Color::class);
}
}
// ExampleController.php
class ExampleController extends AbstractController
{
public function viewAction()
{
$color = $this->getRepository()->getColorByName('Red & Black');
dump($color);
}
}
The result of our dump() should be an outputted object of Color type to the screen with private properties filled up.