pensiero / artax-composer
Artax库的包装器
Requires
- php: >=5.4
- amphp/artax: 2.*
- php-http/guzzle6-adapter: 1.*
- zendframework/zend-cache: ~2.7
- zendframework/zend-modulemanager: ~2.7
- zendframework/zend-mvc: ~2.7
This package is not auto-updated.
Last update: 2024-09-14 18:26:18 UTC
README
ArtaxComposer 是一个围绕Zend Framework 2的amphp/artax客户端的包装器服务
入门指南
composer require pensiero/artax-composer
在 application.config.php
中将 ArtaxComposer
添加为模块
用法
现在您将能够访问 ArtaxComposer\Service\ArtaxService
服务。
您可以在工厂中获取它
/** @var \ArtaxComposer\Service\ArtaxService $artaxService */
$artaxService = $serviceLocator->get('ArtaxComposer\Service\ArtaxService');
配置
默认情况下,ArtaxComposer 包含以下 配置
'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,
],
您可以在您的 module.config.php
中覆盖它们
可用方法
除了 get()
、post()
、put()
和 delete()
方法之外,每个方法都是可链式的。
setUri(string $uri)
设置请求的 URI。
setParams(array $params)
设置传递给请求的参数。GET 参数不应该在 URI 中传递,而应该通过此方法传递。
addHeader(string $name, string $value)
添加一个头部。
setHeaders(array $headers)
通过传递的头部替换所有头部。
withHeaders()
返回响应中的头部。
setAuthToken(string $authToken)
设置一个以键值形式存在的头部授权令牌,格式为 key: Authorization
,value: Token token="AUTH_TOKEN"
。
useCache(int $ttl = null)
通过在 module.config.php
中定义的缓存缓存每个请求(示例见下文)。
reset()
重置之前传递的所有参数。如果之前已覆盖,则将恢复默认头部。
debug()
而不是返回响应,返回传递给服务器的所有配置的数组。
returnObject()
响应将是一个对象。
returnArray()
响应将是一个数组。
returnObject()
响应将是一个 JSON 字符串。
get()
执行 GET 请求并返回响应。
post()
执行 POST 请求并返回响应。
put()
执行 PUT 请求并返回响应。
delete()
执行 DELETE 请求并返回响应。
示例
带有参数的简单 GET 请求
$response = $this
->artaxService
->setUri('https://api.github.com/users/pensiero')
->setParams([
'bacon' => 'slurp',
])
->get();
带有参数和缓存的 POST 请求
在您的 module.config.php
'service_manager' => [
'factories' => [
'Application\Cache\Redis' => 'Application\Cache\RedisFactory',
],
],
'artax_composer' => [
'cache' => 'Application\Cache\Redis',
],
创建 module/src/Application/Cache/RedisFactory.php
<?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);
}
}
调用
$response = $this
->artaxService
->setUri('https://api.github.com/users/pensiero')
->setParams([
'bacon' => 'slurp',
'eggs' => 'top',
])
->useCache()
->post();