bajzany/api-client

此包的最新版本(v1.0.6)没有可用的许可证信息。

Nette 框架的 API 客户端

安装数量: 1,522

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:扩展

v1.0.6 2020-01-09 10:15 UTC

This package is auto-updated.

Last update: 2024-09-09 20:31:06 UTC


README

安装

  • Composer 安装
composer require bajzany/api-client dev-master
  • 注册到 Nette 应用程序
extensions:
	ApiClientExtension: Bajzany\ApiClient\DI\ApiClientExtension
	
ApiClientExtension: 
	verify: TRUE
	stream: TRUE
	connect_timeout: 20
	read_timeout: 20
	timeout: 20
  • verify = 启用验证证书
  • connect_timeout = 描述等待连接到服务器秒数的浮点数。使用 0 表示无限期等待(默认行为)。
  • timeout = 如果服务器不返回响应,则超时
  • read_timeout = 该超时适用于流式主体的单个读取操作(当启用流选项时)。

如何使用

  • 首先创建一个扩展 Bajzany\ApiClient\Model\EndPoint 的 api 请求操作类,例如 Bajzany\ApiClient\Example\UpdateUserApi

     <?php
     
     namespace Bajzany\ApiClient\Example;
     
     use Bajzany\ApiClient\Model\EndPoint;
     use Bajzany\ApiClient\Provider;
     use Bajzany\ApiClient\Response;
     
     class UpdateUserApi extends EndPoint
     {
     
     	const METHOD = Provider::METHOD_POST;
     
     	/**
     	 * @var int
     	 */
     	private $userId;
     
     	/**
     	 * @var array
     	 */
     	private $data;
     
     	public function __construct(int $userId, array $data)
     	{
     		$this->userId = $userId;
     		$this->data = $data;
     	}
     
     	/**
     	 * @return string
     	 */
     	public function getUrl(): string
     	{
     		return "http://crm.d/test/user-update/{$this->userId}";
     	}
     
     	/**
     	 * @param Provider $provider
     	 * @return mixed
     	 * @internal
     	 */
     	public function processRawRequest(Provider $provider): array
     	{
     		return $this->data;
     	}
     
     	/**
     	 * @param Provider $provider
     	 * @return Response|mixed
     	 * @throws \GuzzleHttp\Exception\GuzzleException
     	 */
     	public function execute(Provider $provider)
     	{
     		return parent::execute($provider);
     	}
     }
    • const METHOD 设置请求方法等 ('POST', 'GET', 'PUT', 'DELETE')
    • function getUrl 设置请求 URL
    • function processRawRequest 将请求数据传递到请求体
    • function execute 可以替换自己的执行事件
  • 为了运行此操作,必须注入服务 Bajzany\ApiClient\Provider

     /** @var Provider @inject */
     public $provider;
  • 现在您可以像这样运行此操作

     $updateUserApi = new UpdateUserApi($userId, [$myData]);
     $response = $updateUserApi->execute($this->provider);	
  • 在提供者中可以放置请求事件,并且已创建响应

     $this->provider->onRequest[] = function (Provider $provider, EndPoint $endPoint, $response) {
     	.....
     };
     $this->provider->onResponse[] = function (Provider $provider, EndPoint $endPoint, $response) {
     	.....
     };