memuya/fabdb-php-sdk

该软件包最新版本(v3.4.0)没有提供许可证信息。

用于与 fabdb.net API 通信的库。

v3.4.0 2024-02-07 03:11 UTC

This package is auto-updated.

Last update: 2024-10-02 00:29:29 UTC


README

https://fabdb.net 即将关闭。

Flesh and Blood (fabdb.net) API 库

用于与 fabdb.net API 通信的库。

安装

此库可以通过 composer 安装。

composer require memuya/fabdb-php-sdk

用法

开始使用最快的方式是通过 FleshAndBlood 类使用 ClientFleshAndBlood 是一个包装器,用于轻松调用 fabdb.com API 提供的所有端点。

可以通过创建一个 Client 对象来创建一个新实例。

use Memuya\Fab\Client;

$client = new Client;

然后,您可以将客户端传递给 FleshAndBlood 实例。

use Memuya\Fab\FleshAndBlood;

$fab = new FleshAndBlood($client);

请注意,您可以直接使用 Client 对象以获得更多控制。以下示例提供更多信息。

格式化器

您可以通过向客户端传递一个 Formatter 来更改响应格式。默认情况下,使用 JsonFormatter。这还用于填充 Accept 请求头。

请注意,API 似乎不尊重 Accept 头部以外的任何内容。这意味着只能使用 JsonFormatter

格式化器列表

new \Memuya\Fab\Formatter\JsonFormatter; // Accept: application/json
new \Memuya\Fab\Formatter\XmlFormatter; // Accept: application/xml
new \Memuya\Fab\Formatter\CsvFormatter; // Accept: text/csv

您可以通过构造函数或设置方法使用格式化器。

// Via the contructor.
$client = new Client(new JsonFormatter);

// Via the setter.
$client->setFormatter(new JsonFormatter);

卡片列表

返回卡片的分页列表。可以使用 CardsConfig 对象来过滤卡片列表。以下示例显示所有过滤选项。所有过滤选项都是 可选的。如果过滤器无效,将抛出 InvalidCardConfigException 异常。有关选项的完整列表,请参阅 API 文档

FleshAndBlood 对象示例

use Memuya\Fab\Enums\Set;
use Memuya\Fab\Enums\Pitch;
use Memuya\Fab\Enums\Rarity;
use Memuya\Fab\Enums\HeroClass;
use Memuya\Fab\Exceptions\InvalidCardConfigException;

try {
    $fab->getCards([
        'page' => 1,
        'per_page' => 10,
        'keywords' => 'search terms',
        'cost' => '1',
        'pitch' => Pitch::One,
        'class' => HeroClass::Brute,
        'rarity' => Rarity::Common,
        'set' => Set::WelcomeToRathe,
    ]);
} catch (InvalidCardConfigException $ex) {
    // Handle exception...
}

Client 对象示例

use Memuya\Fab\Enums\Set;
use Memuya\Fab\Enums\Pitch;
use Memuya\Fab\Enums\Rarity;
use Memuya\Fab\Enums\HeroClass;
use Memuya\Fab\Endpoints\Cards\CardsConfig;
use Memuya\Fab\Endpoints\Cards\CardsEndpoint;
use Memuya\Fab\Exceptions\InvalidCardConfigException;

try {
    $cards = $client->sendRequest(
        new CardsEndpoint(
            new CardsConfig([
                'page' => 1,
                'per_page' => 10,
                'keywords' => 'search terms',
                'cost' => '1',
                'pitch' => Pitch::One,
                'class' => HeroClass::Brute,
                'rarity' => Rarity::Common,
                'set' => Set::WelcomeToRathe,
            ])
        )
    );
} catch (InvalidCardConfigException $ex) {
    // Handle exception...
}

返回一张卡片

使用其标识符搜索卡片。

FleshAndBlood 对象示例

$fab->getCard('ARC000');

Client 对象示例

use Memuya\Fab\Endpoints\Card\CardConfig;
use Memuya\Fab\Endpoints\Card\CardEndpoint;

$client->sendRequest(
    new CardEndpoint(
        new CardConfig(['identifier' => 'ARC000'])
    )
);

牌组

返回特定牌组的信息。

FleshAndBlood 对象示例

$fab->getDeck('deck-slug');

Client 对象示例

use Memuya\Fab\Endpoints\Deck\DeckConfig;
use Memuya\Fab\Endpoints\Deck\DeckEndpoint;

$client->sendRequest(
    new DeckEndpoint(
        new DeckConfig(['slug' => 'deck-slug'])
    )
);