affiliateforge / php-admitad-api
提供 Admitad API
Requires
- php: ^8.1
- php-http/discovery: ^1.19
- psr/http-client: ^1.0
Requires (Dev)
- nyholm/psr7: ^1.8
- php-http/mock-client: ^1.6
- phpunit/phpunit: ^10.5
- symfony/http-client: ^7.0
This package is auto-updated.
Last update: 2024-09-04 05:04:27 UTC
README
该软件包提供了 Admitad API 客户端。
需求
php ^8.1
- 任何 PSR-18
Client Interface
实现。例如,symfony/http-client
安装
composer require affiliateforge/php-admitad-api
使用
示例
例如,要获取某个网站的优惠券列表,您首先需要获取一个授权令牌,然后使用您的令牌获取优惠券列表。这些请求的代码将如下所示
$api = new \Affiliateforge\PhpAdmitadApi\APIClient();
$clientID = '777xyz';
$authHash = 'XE5NVl0bU5NcQ==';
$scopes = ['coupons'];
$getTokenCmd = new \Affiliateforge\PhpAdmitadApi\Api\Endpoints\ClientAuthorization\GetToken($clientID, $scopes);
$getTokenResponse = $api->doRequest($getTokenCmd, [
'Authorization' => 'Basic ' . $authHash,
]);
$headers = [
'Authorization' => 'Bearer ' . $getTokenResponse->getAccessToken(),
];
$couponsCmd = new \Affiliateforge\PhpAdmitadApi\Api\Endpoints\Coupons\GetList(limit: 1);
$couponsResponse = $api->doRequest($couponsCmd, $headers);
var_dump($couponsResponse->getResults());
描述
该软件包为 API 中的每个(尚未)端点提供 DTO 对象。这些 DTO 对象根据文档中的描述通过命名空间进行分发。
每个此类 DTO 在构造函数中接受端点可以接受的所有参数(来自文档)。它们将在请求执行的正确位置(查询参数或请求体)时被替换。在响应中,您将收到一个 DTO,它具有来自文档的每个响应字段的 getter。
要执行请求,您必须创建一个 DTO 对象并将其传递给 Affiliateforge\PhpAdmitadApi\APIClient
类的 doRequest(CommandDTO $command, array $headers = []): ResponseDTO
。
许多 API 端点需要在授权头中指定一个令牌。头信息通过 doRequest
方法的 $headers
参数传递。
要获取令牌,您应使用 DTO Affiliateforge\PhpAdmitadApi\Api\Endpoints\ClientAuthorization\GetToken
。在构造函数中,您应指定 clientID
和请求的作用域。在响应中,您将收到一个代表此端点的 DTO,从中您可以获取令牌本身。
然后,您必须将此令牌传递到每个其他端点请求的 Authorization
头中。
APIClient 配置
在创建 APIClient
对象时,您可以传递 PSR-18 Client Interface
的任何实现。如果没有传递实现,软件包将尝试使用包 php-http/discovery
在您的依赖中找到它。