Lazy JSON Pages — це API-скрепер, який не прив'язаний до конкретних фреймворків і дозволяє завантажувати елементи з будь-якого пагінованого JSON API у "ліниві" колекції Laravel. Інструмент має високу налаштовуваність, тому ви можете використовувати його в будь-якому PHP-проєкті з пагінованими результатами JSON:
use Illuminate\Support\LazyCollection;
$result = LazyCollection::fromJsonPages($source)
->totalPages('pagination.total_pages')
->async(requests: 3)
->throttle(requests: 100, perMinutes: 1)
->collect('data.*');
Хоча Lazy JSON Pages повертає дані у вигляді "лінивих" колекцій Laravel, ви також можете використовувати цей пакет у будь-якому PHP-проєкті. Завдяки використанню Guzzle ви легко можете налаштувати поведінку клієнта за допомогою проміжного програмного забезпечення, яке необхідне для вашого API.
# Основні характеристики
- Незалежність від фреймворків: Функціонує без прив'язки до конкретних фреймворків, але безперешкодно інтегрується в Laravel.
- Асинхронні HTTP-запити: Завантажує елементи з пагінованих JSON API, використовуючи асинхронні HTTP-запити.
- Підтримка "лінивих" колекцій: Безперешкодно завантажує дані API в "ліниві" колекції Laravel для ефективного використання пам’яті.
- Обробка пагінації: Збирає та обробляє пагіновані API без необхідності ручного управління пагінацією.
- Ефективна обробка даних: Дозволяє працювати з великими наборами даних із мінімальним споживанням пам’яті.
Деталі про пакет, інструкції з установки та код можна знайти на GitHub.