joebocock / chess-api-php
一个简单的API SDK,用于与公共chess.com API交互。
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.5
- guzzlehttp/psr7: ^2.4
- psr/http-client: ^1.0
- psr/http-message: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.14
- pestphp/pest: ^1.22
- pestphp/pest-plugin-faker: ^1.0
- pestphp/pest-plugin-parallel: ^1.2
- phpstan/phpstan: ^1.9
README

Chess.com PHP API SDK
一个简单的PHP SDK,用于与公共chess.com API交互。
警告:此包仍在积极开发中,处于非常初级的阶段。
目录
介绍
此PHP Composer包提供了一个简单的SDK,用于与Chess.com的“发布数据”API交互。他们的API提供了所有Chess.com公开的数据,无需通过他们的服务进行身份验证。由于此包仍在开发中,并非所有端点都已实现,但最终将包括...
- 玩家数据
- 俱乐部
- 锦标赛
- 团队比赛
- 国家
- 每日谜题
- 直播
- 排行榜
此包无需配置即可直接使用。但是,如果您愿意,可以提供一个配置好的HTTP客户端,前提是它遵循PSR-18。
用法
此包尚未完成,但我正在积极开发中。我正在逐步处理各种端点。要开始,请使用Composer安装包。
composer require joebocock/chess-api-php
通用用法简单,您可以在短时间内开始运行。
use JoeBocock\ChessApi\Chess; $client = new Chess(); /** @var JoeBocock\ChessApi\Entities\PlayerProfile */ $playerProfile = $client->playerProfile('gothamchess'); echo $playerProfile->name; // 'Levy Rozman'
在内部,将使用Guzzle来发送请求 - 但如果您有自己的PSR-18兼容的HTTP客户端,您可以在构造Chess类时提供它。这在您需要事先配置客户端时非常棒。
use GuzzleHttp\Client; use JoeBocock\ChessApi\Chess; $client = new Chess( new Client([ // configuration... ]) );
对于所有端点,客户端提供描述性的方法来轻松处理请求构建和随后的响应填充。这些方法还提供了一些基本输入验证,以帮助您在发送请求之前发现问题。
然而,有时您可能希望自行处理请求构建。Chess客户端允许您这样做。
use JoeBocock\ChessApi\Chess; use JoeBocock\ChessApi\Requests\PlayerProfileRequest; $client = new Chess(); $request = new PlayerProfileRequest(); $request->setUsername('lud-skywalker'); $response = $client->send($request);
虽然我们希望使用过程中不会出错,但有时Chess.com可能会返回4XX或甚至5XX。在这种情况下,我们的Chess类会抛出三个不同的异常,以帮助确定问题。
无效参数将产生一个InvalidArgumentException,正如预期的那样。每当HTTP客户端出现问题时,都会发生ChessRequestException。最后,当返回的响应无法正确填充到实体时,将发生ChessResponseException。
use JoeBocock\ChessApi\Chess; use JoeBocock\ChessApi\Exceptions\ChessRequestException; use JoeBocock\ChessApi\Exceptions\ChessResponseException; $client = new Chess(); try { $playerProfile = $client->playerProfile('gothamchess'); } catch (ChessRequestException|ChessResponseException|\InvalidArgumentException $e) { // handle... }
开发
作为只是一个包,它没有本地Web服务器的需求。开发由一个非常简单的Docker容器提供动力,用于运行所有命令。
要开始,首先克隆存储库。为了方便命令处理,提供了一个Makefile...
# Build the container make build # Install Composer Dependencies make install # Run the test suite make test # Run static analysis make stan # Format the codebase make format # Lint the codebase make lint
贡献
由于此包仍在开发中,尚未达到v1版本,我还没有编写任何贡献指南。但不要让这一点阻止您!请随意分支代码库,了解风格并提交PR。