使用 API 檢索大量資料(可能是數千個專案)時,需要考慮幾個關鍵方面,以確保流程高效、靈活且高效能。以下是需要管理的關鍵因素的細分,以及針對 PHP 使用者的解決方案。
讓我分享一些透過 API 高效檢索大型資料集的關鍵注意事項:
如果您正在使用 PHP,那麼您很幸運。 Lazy JSON Pages 開源套件提供了一個方便的、與框架無關的 API 抓取器,可以透過非同步 HTTP 要求將分頁 JSON API 中的項目載入到 Laravel 惰性集合中。該套件簡化了分頁、限制、並行請求和記憶體管理,確保效率和效能。
您可以在官方 GitHub 存儲庫的自述文件中找到有關該包的更多信息,以及用於自定義它的更多選項:Lazy JSON Pages。
我想對軟體包的作者 Andrea Marco Sartori 表示感謝。
這是使用 PHP 中的 Lazy JSON Pages 套件從 Storyblok 檢索數千個故事的簡明範例。
首先,您可以建立一個新目錄,跳到該目錄並開始安裝套件:
mkdir lazy-http cd lazy-http composer require cerbero/lazy-json-pages
安裝套件後,您可以開始建立腳本:
<?php require "./vendor/autoload.php"; use Illuminate\Support\LazyCollection; $token = "your-storyblok-access-token"; $version = "draft"; // draft or published $source = "https://api.storyblok.com/v2/cdn/stories?token=" . $token . "&version=" . $version; $lazyCollection = LazyCollection::fromJsonPages($source) ->totalItems('total') ->async(requests: 3) ->throttle(requests: 10, perSeconds: 1) ->collect('stories.*'); foreach ($lazyCollection as $item) { echo $item["name"] . PHP_EOL; }
然後您可以替換您的存取令牌,並透過 php 命令執行腳本。
這種方法提供了可靠、高效能且記憶體高效的解決方案,用於從 PHP 中的 API 檢索大量資料。
以上是優化大規模 API 資料檢索:最佳實踐和 PHP 延遲收集解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!