memuya / fabdb-php-sdk
该软件包最新版本(v3.4.0)没有提供许可证信息。
用于与 fabdb.net API 通信的库。
v3.4.0
2024-02-07 03:11 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: 9.5.5
README
https://fabdb.net 即将关闭。
Flesh and Blood (fabdb.net) API 库
用于与 fabdb.net API 通信的库。
安装
此库可以通过 composer 安装。
composer require memuya/fabdb-php-sdk
用法
开始使用最快的方式是通过 FleshAndBlood
类使用 Client
。 FleshAndBlood
是一个包装器,用于轻松调用 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']) ) );