api-clients / transport
注入中间件的 clue/buzz-react
Requires
- php: ^7.0
- api-clients/middleware: ^4.0
- api-clients/rx: ^2.0
- clue/buzz-react: ^2.0 || ^1.4
- react/event-loop: ^1.0 || ^0.5 || ^0.4
- react/http-client: ^0.4.17 || ^0.5
- react/promise-stream: ^1.0 || ^0.1.0
Requires (Dev)
Suggests
- api-clients/middleware-cache: Caching middleware
- api-clients/middleware-oauth1: Oauth 1.0 middleware
- api-clients/resource-generator: Easy wireframing of resources
- dev-master
- 3.2.0
- 3.1.0
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.0.0
- 1.0.1
- 1.0.0
- dev-renovate/configure
- dev-dependabot/add-v2-config-file
- dev-dependabot/composer/clue/buzz-react-2.6.0
- dev-proxy-support
- dev-allow-middleware-instances
- dev-react-promise-stream-1.0-and-0.1
- dev-buzz-2.0-and-1.1
- dev-feature-error-handling-middlware
- dev-feature-request-processing
- dev-var.ci
This package is auto-updated.
Last update: 2024-09-15 06:44:54 UTC
README
简而言之,这个包是对 clue/buzz-react
的包装,添加了 中间件。
安装
通过 Composer 安装,使用以下命令,它将自动检测最新版本并将其绑定到 ^
。
composer require api-clients/transport
用法
可以使用工厂创建客户端
$locator = new MiddlewareLocator(); // A concrete class implementing the middleware locator interface $loop = EventLoopFactory::create(); // The event loop $options = []; // Client options, as described below $client = Factory::create($locator, $loop, $options);
接下来,您可以发出 PSR-7 请求
$request = new PsrRequest(); // $requestOptions = []; // Options such as middleware settings $client->request($request, $requestOptions)->done(function (ResponseInterface $response) { // Handle the response });
中间件
中间件通过选项参数传递给客户端。在这个例子中使用了 api-clients/middleware-delay
。向客户端添加中间件很简单,将一个数组添加到 $options
中,将 Options::MIDDLEWARE
作为索引,包含中间件类名。您还可以通过 $options
数组传递中间件的选项。只需在数组内部添加一个新数组,将中间件类名作为索引,并将所需的选项传递给它。
$options = [ Options::DEFAULT_REQUEST_OPTIONS => [ \ApiClients\Middleware\Delay\DelayMiddleware::class => [ \ApiClients\Middleware\Delay\Options::DELAY => 3, ], ], Options::MIDDLEWARE => [ \ApiClients\Middleware\Delay\DelayMiddleware::class, ], ]; $client = new Client($loop, $container, $browser, $options);
可以按请求更改中间件选项,这个特定的请求将只有5秒的延迟,而不是默认的3秒
$requestOptions = [ \ApiClients\Middleware\Delay\DelayMiddleware::class => [ \ApiClients\Middleware\Delay\Options::DELAY => 5, ], ]; $client->request($request, $requestOptions);
选项
Options::DNS
用于解析主机名的 DNS 服务器,默认为 8.8.8.8
。
Options::SCHEMA
URI 的模式部分,默认为 https
。
Options::HOST
URI 的主机部分,必需。
Options::PORT
URI 的端口部分,可选。
Options::PATH
URI 的路径部分,默认为 /
。
Options::HEADERS
带有头的键值数组,默认为 []
。
Options::MIDDLEWARE
包含中间件类名的数组,例如 [MiddlewareOne::class, MiddlewareTwo::class]
,默认为 []
。
Options::DEFAULT_REQUEST_OPTIONS
默认请求选项集,主要对需要所有请求的中间件有用,默认为 []
。
许可证
MIT 许可证 (MIT)
版权所有 © 2017 Cees-Jan Kiewiet
特此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人,免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向提供软件的人提供这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者都不对任何索赔、损害或其他责任负责,无论这种责任是基于合同、侵权或其他原因,无论这种责任源于、因之而起或与此软件或其使用或其他操作有关。