Давайте попробуем.Я думаю, что у вас уже есть http-клиент, если нет, то вам стоит взглянуть на guzzle или что-то подобное.
В каждом ответе есть параметр max
, также вы можете установить after
параметр в вашем запросе для управления текущей страницей.Не проверял, просто пример, поэтому будьте осторожны:
//initializing guzzle
$guzzle = new GuzzleHttp\Client(['base_uri' => 'http://api.api/api']);
//current max number
$after = 0;
//array for all data
$allData = [];
//loop while collection in response doesn't empty
do {
//quering current data piece
$response = $guzzle->request(
'GET',
'/api/2.0/products',
['query' => ['after' => $after]]
);
//decoding response
$responseBody = (string) $response->getBody();
$decodedResponse = json_decode($responseBody, true);
//here you can do some operations with $decodedResponse['data']
//you can store all data to array but this is bad, you can catch
//Allowed memory size of ... bytes exhausted
$allData = array_merge($allData, $decodedResponse['data']);
//recording current max to $after
$after = $decodedResponse['version']['max'];
} while (!empty($decodedResponse['data']));