当使用 api 检索大量数据(可能是数千个项目)时,需要考虑几个关键方面,以确保流程高效、灵活且高性能。以下是需要管理的关键因素的细分,以及针对 php 用户的解决方案。
让我分享一些通过 api 高效检索大型数据集的关键注意事项:
如果您使用 php,那么您很幸运。 lazy json pages 开源包提供了一个方便的、与框架无关的 api 抓取器,可以通过异步 http 请求将分页 json api 中的项目加载到 laravel 惰性集合中。该包简化了分页、限制、并行请求和内存管理,确保效率和性能。
您可以在官方 github 存储库的自述文件中找到有关该包的更多信息,以及用于自定义它的更多选项:lazy json pages。
立即学习“PHP免费学习笔记(深入)”;
我想对软件包的作者 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中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号