artax-composer
ArtaxComposer is a Zend Framework 2 service wrapper around the amphp/artax client, (*1)
Getting Started
composer require pensiero/artax-composer
Add ArtaxComposer as module in your application.config.php, (*2)
Usage
You will now have access to the ArtaxComposer\Service\ArtaxService service., (*3)
You can get it in your factory:, (*4)
/** @var \ArtaxComposer\Service\ArtaxService $artaxService */
$artaxService = $serviceLocator->get('ArtaxComposer\Service\ArtaxService');
Configs
By default ArtaxComposer come with this configs, (*5)
'artax_composer' => [
/*
* Cache could be:
* - null
* - an instance of Zend\Cache\Storage\Adapter\AbstractAdapter
* - a string rapresenting a service to search inside the serviceLocator
*/
'cache' => null,
/*
* If seeds are enabled, the system will write inside the specified seeds directory the result of each request
* Clear the seeds directory in order to have fresh results
*/
'seeds' => [
'enabled' => false,
'directory' => 'data/seeds/',
],
/*
* Default headers to add inside each request
*/
'default_headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json; charset=utf-8',
],
/*
* Enable or not the newrelic extension
*/
'newrelic' => false,
],
You can ovveride them in your module.config.php, (*6)
Available methods
Each methods is chainable, except for the get(), post(), put() and delete() methods., (*7)
setUri(string $uri)
Set the URI of the request., (*8)
setParams(array $params)
Set the params passed to the request. GET params should not be passed in the uri, but via this method., (*9)
Add an header., (*10)
Replace all headers via those passed., (*11)
Return headers along the response., (*12)
setAuthToken(string $authToken)
Set an header authorization token in the form key: Authorization, value: Token token="AUTH_TOKEN"., (*13)
useCache(int $ttl = null)
Cache each request via the cache defined in module.config.php (example below)., (*14)
reset()
Reset all params passed before. Default headers will be restored if previously overwritten., (*15)
debug()
Instead of the response, return an array of all the configuration passed to the service., (*16)
returnObject()
The response will be an object., (*17)
returnArray()
The response will be an array., (*18)
returnObject()
The response will be a json string., (*19)
get()
Perform a GET request and return a response., (*20)
post()
Perform a POST request and return a response., (*21)
put()
Perform a PUT request and return a response., (*22)
delete()
Perform a DELETE request and return a response., (*23)
Examples
Simple GET request with params
$response = $this
->artaxService
->setUri('https://api.github.com/users/pensiero')
->setParams([
'bacon' => 'slurp',
])
->get();
POST request with params and cache
In your module.config.php, (*24)
'service_manager' => [
'factories' => [
'Application\Cache\Redis' => 'Application\Cache\RedisFactory',
],
],
'artax_composer' => [
'cache' => 'Application\Cache\Redis',
],
Create module/src/Application/Cache/RedisFactory.php, (*25)
<?php
namespace Application\Cache;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Zend\Cache\Storage\Adapter\RedisOptions;
use Zend\Cache\Storage\Adapter\Redis;
class RedisFactory implements FactoryInterface
{
public function createService(ServiceLocatorInterface $serviceLocator)
{
$redisOptions = new RedisOptions();
$redisOptions
->setServer('YOUR_HOST', 'YOUR_PORT');
return new Redis($redisOptions);
}
}
Call:, (*26)
$response = $this
->artaxService
->setUri('https://api.github.com/users/pensiero')
->setParams([
'bacon' => 'slurp',
'eggs' => 'top',
])
->useCache()
->post();