affiliateforge/php-admitad-api

v1.0.12 2024-08-04 04:51 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 在您的依赖中找到它。