私は現在、アーティストとその仲間のタイトルを検索する Web アプリケーションを開発しています。これを行うために、このパッケージ(ドキュメンテーションはこちら)を通じて API MusicBrainz を解析することにしました。
アーティスト mbid (MusicBrainz の一意の識別子) が既にあるとします。
mbid = 302bd7b9-d012-4360-897a-93b00c855680
問題は、たとえば、David Guetta ( ) を検索すると、スクリプトはリリース数が 196 であると表示することです。ただし、API では、リクエストごとに最大 100 件の結果が返されます。
// Instantiate a MusicBrainz object
$brainz = new MusicBrainz(new GuzzleHttpAdapter(new Client()));
$brainz->setUserAgent('ApplicationName', '0.2', 'http://example.com');
$limit = 100;
$offset = 0;
$includes = array('labels', 'recordings');
try {
$details = $brainz->browseRelease('artist', '302bd7b9-d012-4360-897a-93b00c855680', $includes, $limit, $offset);
print_r($details);
} catch (Exception $e) {
print $e->getMessage();
}
以下の関数を使用すると、 やbrowseRelease
などのパラメータを定義できます。limit
offset
public function browseRelease($entity, $mbid, $includes = array(), $limit = 25, $offset = null, $releaseType = array(), $releaseStatus = array())
{
if (!in_array($entity, array('artist', 'label', 'recording', 'release-group'))) {
throw new Exception('Invalid browse entity for release');
}
return $this->browse(
new Filters\ReleaseFilter(array()),
$entity,
$mbid,
$includes,
$limit,
$offset,
$releaseType,
$releaseStatus
);
}
ここで、この投稿で私の本当の質問に行きます。
$limit = 100
最初のクエリでandを定義した場合$offset = 0
、合計リリース数に応じてこれらの値を変更する方法がわかりません。したがって、100 から 196 の間の結果が得られます (この例では)。