billthekid/punk-api

PHP 对 Punk API 的封装 https://punkapi.com

1.1.2 2017-03-23 23:11 UTC

This package is auto-updated.

Last update: 2024-09-13 16:46:06 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads composer.lock available

PHP 封装查询 PunkAPI https://punkapi.com,由 Sam Mason 提供

此项目的完整 API 文档可在 https://billythekid.github.io/PunkApi/class-billythekid.PunkApi.html 查找

安装

通过 composer composer require billythekid/punk-api

用法

创建客户端的新实例

$punkApi = new billythekid\PunkApi();

$punkApi = billythekid\PunkApi::create();

方法

getEndpoint()

根据提供的选项返回将要触发的当前端点。在不实际触发的条件下检查将要触发的内容是很有用的。此方法不可链式调用。

addParams(Array $params)

此方法可链式调用。

向搜索添加参数。支持以下参数键

  • abv_gt 数字 返回所有 ABV 大于数字的啤酒
  • abv_lt 数字 返回所有 ABV 小于数字的啤酒
  • ibu_gt 数字 返回所有 IBU 大于数字的啤酒
  • ibu_lt 数字 返回所有 IBU 小于数字的啤酒
  • ebc_gt 数字 返回所有 EBC 大于数字的啤酒
  • ebc_lt 数字 返回所有 EBC 小于数字的啤酒
  • beer_name 字符串 返回所有与提供的名称匹配的啤酒(这将匹配部分字符串,例如 punk 将返回 Punk IPA)
  • yeast 字符串 返回所有与提供的酵母名称匹配的啤酒,这也匹配部分字符串
  • brewed_before 日期(字符串) 返回所有在此日期之前酿造的啤酒,日期格式为 mm-yyyy 例如 10-2011
  • brewed_after 日期(字符串) 返回所有在此日期之后酿造的啤酒,日期格式为 mm-yyyy 例如 10-2011
  • hops 字符串 返回所有与提供的酒花名称匹配的啤酒,这也匹配部分字符串
  • malt 字符串 返回所有与提供的麦芽名称匹配的啤酒,这也匹配部分字符串
  • food 字符串 返回所有与提供的食物字符串匹配的啤酒,这也匹配部分字符串
  • page 数字 返回给定页面的啤酒(响应是分页的)
  • per_page 数字 更改每页返回的啤酒数量(默认 - 25)
  • ids 字符串 V2 新增 - 用管道分隔的 ID 数字字符串(192|224 等)

以下链式方法可用于更改参数,如果您愿意

abvAbove($number)
abvBelow($number)
ibuAbove($number)
ibuBelow($number)
ebcAbove($number)
ebcBelow($number)
named($beerName)
yeast($yeastName)
brewedBefore($date)
brewedAfter($date)
hops($hopsName)
malt($maltName)
food($foodName)
page($pageNumber)
perPage($number)
ids($ids) // can pass an array of ids instead of piping them into a string here.

示例

//get all beers with an ABV between 4 and 9, called *punk*
$punkApi = \billythekid\PunkApi::create("PUNK_API_KEY")
  ->addParams(['abv_gt' => 4, 'abv_lt' => 9])
  ->addParams(['beer_name' => "punk"])
  ->getEndpoint(); // https://api.punkapi.com/v2/beers?abv_gt=4&abv_lt=9&beer_name=punk

//Chained method for same result
$punkApi = \billythekid\PunkApi::create("PUNK_API_KEY")
  ->abvAbove(4)
  ->abvBelow(9)
  ->named("punk")
  ->getEndpoint(); // https://api.punkapi.com/v2/beers?abv_gt=4&abv_lt=9&beer_name=punk
removeParams($param1 [, $param2, ..., $paramN])

从搜索中删除参数。此方法可链式调用

示例

$punkApi = \billythekid\PunkApi::create("PUNK_API_KEY")
    ->addParams(['abv_gt' => 4, 'abv_lt' => 9])
    ->addParams(['beer_name' => "punk"])
    ->removeParams('beer_name', 'abv_gt')
    ->addParams(['ibu_lt'=> 100])
    ->getEndpoint(); // https://api.punkapi.com/v2/beers?abv_lt=9&ibu_lt=100
clearParams()

清空所有参数。此方法可链式调用。

示例

$punkApi = \billythekid\PunkApi::create("PUNK_API_KEY")
    ->addParams(['abv_gt' => 4, 'abv_lt' => 9])
    ->addParams(['beer_name' => "punk"])
    ->clearParams()
    ->getEndpoint(); //https://api.punkapi.com/v2/beers
getBeers()

对 API 执行查询,返回啤酒数组。

示例

$punkApi = \billythekid\PunkApi::create("PUNK_API_KEY")
    ->addParams(['abv_gt' => 4, 'abv_lt' => 9])
    ->addParams(['beer_name' => "punk"])
    ->removeParams('beer_name', 'abv_gt')
    ->addParams(['ibu_lt'=> 100])
    ->getBeers(); // returns a PHP array of beer objects - see the Example JSON Response at https://punkapi.com/documentation
getRandomBeer()
getBeerById($beerId)

从 API 中拉取随机啤酒或通过其 ID 号码拉取特定啤酒

示例

$punkApi = \billythekid\PunkApi::create("PUNK_API_KEY")
    ->getRandomBeer(); // returns an array with a single beer object (StdObject) 

变更日志

v 1.1.2 - 2017 年 3 月 23 日
  • 错误修复 - 不传递参数到 :create() 抛出错误
v 1.1.1 - 2017 年 2 月 10 日
  • 错误修复 - perPage() 未能正常工作
  • 添加更多测试
v 1.1.0 - 2017 年 2 月 10 日
  • 非破坏性更新以使用 Punk Api 的默认版本 2
  • 更新文档和 README
  • 添加 ->ids() 端点和 ids 参数
  • 添加测试
v 1.0.0 - 2016 年 10 月 15 日
  • 首次发布