iarcadia / php-magic-pokeapi
一个出色的PokéAPI PHP包装器。
Requires
- php: >=7.1.7
- symfony/console: ^4.0
- symfony/yaml: ^4.0
This package is auto-updated.
Last update: 2024-09-29 04:09:01 UTC
README
此包是一个面向对象的PHP包装器,用于使用PokéAPI的版本2 RESTful API。有了MagicPokeAPI,你可以通过几行代码从PokéAPI服务器获取大量数据。该包包含一个有用的迷你缓存系统。
什么是PokéAPI?
这是一个与一个广泛的数据库相连的完整RESTful API,详细介绍了宝可梦主游戏系列的所有内容。
安装
使用composer要求此包
composer require iarcadia/php-magic-pokeapi
配置
首先,您需要将文件放入config
文件夹中。
cache.php
与缓存系统相关。
request.php
与请求系统相关。
lang.php
与语言系统相关。
请尊重这些文件中的注释。
使用方法
第一步
是的,你可能已经猜到了:为了继续,你必须创建一个你喜欢的PokéAPI包装器的实例。
$api = new PokeAPI();
别忘了包含文件或使用类。(例如use iArcadia\MagicPokeAPI\PokeAPI
)
第二步
你必须指定你想要查找的资源!使用resource()
方法。
$api->resource('pokemon'); // or (and the recommended one) $api->resource(PokeAPI::RESOURCE_POKEMON);
PokéAPI类为所有资源提供了常量。使用它们代替直接字符串可能是个好主意。
常量列表可在src/PokeAPI.php
文件中找到。
端点
设置结果数量(或“限制”)
使用limit()
方法。
$api->limit(20);
设置搜索起点(或“偏移”)
使用offset()
或skip()
方法。
$api->offset(5); // or $api->skip(5);
skip()
方法是对offset()
的一个别名。
执行请求
使用get()
方法。
$data = $api->get();
资源详细信息
非常简单,只需使用find()
方法。
// by name $item = $api->find('arcanine'); // or by id $item = $api->find(25);
其他
请求原始URL
你想直接写URL吗?使用raw()
方法。
// endpoint $api->raw('/ability/'); // with parameters $api->raw('/pokemon-species/?limit=30&offset=60'); // resource details $api->raw('/pokemon/bulbasaur/'); // with full URL $api->raw('https://www.pokeapi.co/api/v2/item/203');
你可以用数组或多个参数指定多个URL。
// array way $api->raw(['/ability/', 'https://www.pokeapi.co/api/v2/item/203']); // many args way $api->raw('/ability/', 'https://www.pokeapi.co/api/v2/item/203');
请注意,使用它后,你的
强制缓存更新
如果你有理由想要强制更新缓存文件,请使用cacheForcing()
方法。
$api->cacheForcing(true);
它将只更新下一次请求的缓存。
提示
链式方法
多亏了面向对象的力量,你可以快速设置两个不同请求之间的选项。
// for endpoint $api->limit(20)->offset(60)->resource(PokeAPI::RESOURCE_ITEM)->get(); // for resource details $api->resource(PokeAPI::RESOURCE_ITEM)->find('potion');
构造函数选项
如果你愿意,你还可以在实例创建时设置选项(如果你知道它们不会改变,例如)。
$api = new PokeApi( [ 'limit' => 20, 'offset' => 0, // works with "skip" too 'resource' => PokeAPI::RESOURCE_CONTEST_EFFECT ]);
使用自动资源名称翻译
注意:目前仅支持宝可梦名称!
如果你决定激活自动资源名称翻译(在config/lang.php
文件中),你将能够使用你的语言名称来请求数据!
// Charizard in french will be translated to: // $api->resource(PokeAPI::RESOURCE_POKEMON)->find('charizard'); $api->resource(PokeAPI::RESOURCE_POKEMON)->find('dracaufeu'); // Nidoqueen in korean will be translated to: // $api->resource(PokeAPI::RESOURCE_POKEMON)->find('nidoqueen'); $api->resource(PokeAPI::RESOURCE_POKEMON)->find('니드퀸');
加分:即使你使用这个功能,所有的英文仍然会继续工作!