dolejska-daniel/riot-api-league

为 PHP8 编写的《英雄联盟》API 包装器

v2.0.0 2023-06-11 08:14 UTC

This package is auto-updated.

Last update: 2024-09-21 07:39:37 UTC


README

版本 v2.0.0

PHP Composer codecov Packagist Packagist Packagist PHP Version Support Support Project

目录

  1. 介绍
  2. 下载
  3. 《英雄联盟》API
    1. 资源版本
    2. 初始化库
    3. 使用示例
    4. 缓存提供者
    5. 速率限制
    6. 调用缓存
    7. 异步请求
    8. 静态数据端点
    9. 静态数据链接
    10. 扩展
    11. 回调函数
    12. CLI 支持
  4. 其他《英雄联盟》API

介绍

欢迎来到《英雄联盟》PHP 库仓库!这个库的目的是为可能需要它的任何人创建一个易于使用的库。这是一个针对《英雄联盟》API的完全面向对象的API包装器。

以下是一些实用功能

  • 速率限制缓存 和超过限制的预防 - 完全自动。
  • 调用缓存 - 允许库在给定时间段内重复使用已获取的数据 - 节省时间和密钥的速率限制。
  • 静态数据端点 - 你可以像它们从未被弃用一样使用静态数据端点。
  • 静态数据链接 - 库可以自动将相关静态数据链接到返回的对象中。
  • 自定义回调 - 你可以设置自定义函数,该函数将在请求处理前后被调用。
  • 对象扩展 - 你可以为获取的API对象实现自己的方法,并允许你在以后的工作中轻松使用它们。
  • CLI 支持 - 在控制台中使用此库非常简单。
  • 中间模式 支持 - 无论你的密钥是否在 中间模式,你都将能够以相同的方式使用库(这意味着当你转到生产环境时,你不需要做任何更改)。
  • 到处都是对象 - API调用返回特殊对象中的数据,这允许现代IDE提示现有属性和方法。

API method hint and documentation API object hint (LeagueEntry) API object hint (LeagueEntry.miniSeries)

请主要参考 维基页面。此文件仅包含对库功能的概述。

下载

下载并使用此库的最简单方法是使用 Composer。如果你还没有使用Composer,你应该立即开始使用它!

在您的机器上安装Composer后,只需执行 composer require "dolejska-daniel/riot-api-league:^1" 命令即可准备使用库!

有关下载和初始设置的更多信息,请参阅 维基页面

《英雄联盟》API

资源版本

以下是你可以找到的已实现的API资源和当前实现这些资源的版本表。有关端点和资源的更多信息,请参阅 维基页面

初始化库

如何开始?

//  Include all required files (installation via Composer is required)
require_once __DIR__  . "/vendor/autoload.php";

use RiotAPI\LeagueAPI\LeagueAPI;
use RiotAPI\Base\Definitions\Region;

//  Initialize the library
$api = new LeagueAPI([
	//  Your API key, you can get one at https://developer.riotgames.com/
	LeagueAPI::SET_KEY    => 'YOUR_RIOT_API_KEY',
	//  Target region (you can change it during lifetime of the library instance)
	LeagueAPI::SET_REGION => Region::EUROPE_EAST,
]);

//  And now you are ready to rock!
$summoner = $api->getSummonerByName("I am TheKronnY");
$matchlist = $api->getMatchlistByAccount($summoner->accountId);
foreach ($matchlist as $match) {
	//  ...
}

初始化库时,您可以设置许多其他设置 - 主要是为了启用特殊功能或修改库的默认行为。请参阅维基页面以获取库设置的全列表。

使用示例

使用LeagueAPI非常简单,只需看看如何根据召唤师名称获取召唤师信息。

//  ...initialization...

//  this fetches the summoner data and returns SummonerDto object
$summoner = $api->getSummonerByName('I am TheKronnY');

echo $summoner->id;             //  KnNZNuEVZ5rZry3I...
echo $summoner->puuid;          //  rNmb6Rq8CQUqOHzM...
echo $summoner->name;           //  I am TheKronnY
echo $summoner->summonerLevel;  //  69

print_r($summoner->getData());  //  Or array of all the data
/* Array
 * (
 *     [id] => KnNZNuEVZ5rZry3IyWwYSVuikRe0y3qTWSkr1wxcmV5CLJ8
 *     [accountId] => tGSPHbasiCOgRM_MuovMKfXw7oh6pfXmGiPDnXcxJDohrQ
 *     [puuid] => rNmb6Rq8CQUqOHzMsFihMCUy4Pd201vDaRW9djAoJ9se7myXrDprvng9neCanq7yGNmz7B3Wri4Elw
 *     [name] => I am TheKronnY
 *     [profileIconId] => 3180
 *     [revisionDate] => 1543438015000
 *     [summonerLevel] => 69
 * )
 */

更多LeagueAPI的使用示例可以在这里找到。

缓存提供者

缓存提供者负责在库的实例中保存有关速率限制调用缓存静态数据的数据,以便于重复使用。当使用之前提到的任何功能时,此功能将自动启用。

使用此功能时,可以将LeagueAPI::SET_CACHE_PROVIDER设置为您选择的任何类,前提是该类必须与PSR-6标准兼容,例如实现Psr\Cache\CacheItemPoolInterface接口。通过使用LeagueAPI::SET_CACHE_PROVIDER_PARAMSLeagueAPI::SET_DD_CACHE_PROVIDER_PARAMS选项,您可以将任何数据传递给缓存提供者类。

有关缓存提供者的更多信息,请参阅维基页面

速率限制

此智能功能可以轻松防止超出您的每个键调用限制和方法限制。为了启用此功能,您必须将LeagueAPI::SET_CACHE_RATELIMIT设置为true。其他一切都是完全自动的,所以您只需要启用此功能。

有关速率限制的更多信息,请参阅维基页面

调用缓存

此功能可以通过暂时保存从API获取的数据并将其用作结果数据来防止在短时间内对API进行不必要的调用。为了启用此功能,您必须将LeagueAPI::SET_CACHE_CALLS设置为true。您还应提供LeagueAPI::SET_CACHE_CALLS_LENGTH选项以指定缓存数据的生存期,否则将使用默认的60秒时间间隔。

有关API调用缓存的更多信息,请参阅维基页面

异步请求

此功能允许您使用Guzzle进行请求分组和异步发送。在发送请求并收到响应后,将调用用户提供的回调函数。

有关异步请求的更多信息,请参阅维基页面

静态数据端点

这些端点为您提供了一种简单的方法来将静态数据转换为对象实例,并轻松地与之一起工作。它们也支持在多个DataDragonAPI函数(显示图像)中。

有关静态数据端点的更多信息,请参阅维基页面

静态数据链接

此功能允许您自动链接与您的请求相关的静态数据,任何数据都通过DataDragonAPI进行管理。所有静态数据都将本地缓存,这使得在初始请求之后此操作非常快。此外,DataDragonAPI发出的任何请求都不会计入您的速率限制。

有关静态数据链接的更多信息,请参阅维基页面

扩展

使用 ApiObject 扩展是一个非常实用的工具,允许将您自己的方法和逻辑实现到 ApiObject 本身中。通过在初始化库时使用设置选项 LeagueAPI::SET_EXTENSIONS 来启用扩展。

有关 API 对象扩展的更多信息,请参阅 维基页面

回调函数

允许您提供在发送实际 API 请求前后调用的自定义函数。

在调用之前,回调函数有取消即将到来的请求的能力 - 当任何 回调函数 返回 false 时,将引发异常 Exceptions\RequestException 并取消请求。

有关回调函数的更多信息,请参阅 维基页面

其他《英雄联盟》API