Обработка больших запросов GET в laravel и их отображение

В настоящее время я работаю над SPA Laravel/VueJS, где я делаю запрос GET (через file_get_contents) для получения заказов от стороннего API. Все работает как задумано, за исключением того, что я получаю обратно только 100 заказов (лимит?). В настоящее время в стороннем API зарегистрировано 1064 заказа, но это количество увеличивается с каждым днем.

Как я могу ПОЛУЧИТЬ и отобразить все заказы, а не только последние 100, и как лучше всего справиться с таким объемом? Я предполагаю, что отображение всех заказов, поскольку я сейчас показываю 100, достаточно скоро выйдет из-под контроля. Можно ли это сделать, например, с помощью разбивки на страницы или мне нужно будет хранить данные в БД?

Мой GET для уточнения:

private static function makeRequest($method, $endpoint)
{
    $username = $_ENV['API_KEY'];
    $url = "https://foo.foo.com//api/v1";

    // Create a stream
    $options = array(
        'http' => array(
            'method' => $method,
            'header' => "Authorization: Basic " . base64_encode("$username:"),
            'user_agent' => "foo(foo.foo.com/api - [email protected])"
        )
    );

    $context = stream_context_create($options);

    return file_get_contents("$url/$endpoint", false, $context);
}

Пример панели инструментов (здесь я перечисляю все 100 заказов): введите здесь описание изображения

Советы как действовать очень приветствуются!


person Jack    schedule 02.02.2021    source источник
comment
когда вы получаете доступ к данным get api через браузер или почтальона, вы получаете все заказы? или есть сотни, вы можете получить большие данные, используя guzzle в потоке. Также обратите внимание, что есть некоторые API, которые отправляют данные в соответствии с желаемой суммой, если вы ничего не отправляете, они отправляют фиксированное значение по умолчанию. проверьте, делает ли ваш API то же самое или нет   -  person bhucho    schedule 03.02.2021
comment
Спасибо, это действительно так! API имеет фиксированную длину в 100 ордеров, просто оно было плохо задокументировано. Мне придется использовать смещение   -  person Jack    schedule 04.02.2021


Ответы (1)


вам нужно создать нумерацию страниц при получении данных, ограничить эти данные, как вы хотите, на 10, 50 или 100. это основная вещь, когда вы получаете большой объем данных, надеюсь, что это поможет.

person Ramadhani Baharzah    schedule 02.02.2021
comment
Да, однако это также решит проблему, что я получаю только 100 заказов из моего запроса GET? - person Jack; 02.02.2021