Open1

microCMSをphpで読み込む際にコンテンツ数が100を超えた時の対処方法

kabotyakabotya

MicroCMSが9月14日の更新よりAPIリクエストのコンテンツ取得リミットが追加
以下対応用のAPIローダーを記載


$client = new \Microcms\Client(
    "",  // YOUR_DOMAIN is the XXXX part of XXXX.microcms.io
    ""  // API Key
);

// APIコンテンツを格納する配列を初期化
$contents = [];

// APIコンテンツ数をすべて取得するまでループ
for ($offset = 0; ; $offset += 100) {
    // APIからデータを取得
    $result = $client->list("event", [
        "limit" => 100,
        "offset" => $offset
    ]);

    // 取得したら配列に追加
    if ($result != null) {
        $re = $result->contents;
        $contents = array_merge($contents, json_decode(json_encode($re), true));
    }

    // APIから取得したデータのオフセットとリミットの合計が、APIコンテンツ数より小さい場合は続ける
    if ($result->offset + $result->limit >= $result->totalCount) {
        break;
    }
}