robertogallea / laravel-lazy-rest
用于将分页的REST资源透明加载到懒集合中的包
1.1
2020-03-04 07:33 UTC
Requires
- php: >=7.2.5
- guzzlehttp/guzzle: ^6.4
- illuminate/support: ~7
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~5
- phpunit/phpunit: ~8.5
- sempro/phpunit-pretty-print: ^1.0
This package is auto-updated.
Last update: 2024-09-08 00:37:31 UTC
README
此包提供了使用Laravel LazyCollection功能加载RESTful分页资源的功能。这样,就不需要复杂的按需分页数据处理机制,因为该包会为您透明地管理所有复杂性,并且仅在需要时管理。
$paginatedEndpoint = 'http://api.with-15-elements-per-page'; $collection = \LazyRest::load($paginatedEndpoint); // Loads only first page dump($collection->skip(10)->first()); // loads all the pages dump($collection->last());
1. 安装
要安装此包,请运行以下命令
composer require robertogallea/laravel-lazy-rest
包中包含的ServiceProvider和Facade别名将自动使用Laravel自动发现服务进行加载。
2. 配置
默认情况下,该包配置为在JSON响应中搜索data
字段,并搜索next_page_url
以检测如何获取结果的下一页。但是,您可以轻松地通过覆盖默认配置来更改此行为
-
发布配置:
php artisan vendor:publish --provider="robertogallea\LaravelLazyRest\LazyRestServiceProvider" --tag=config
-
编辑
config/lazy-rest.php
'fields' => [ 'next_page_url' => 'next_page_url', 'data' => 'data', 'timeout' => 5.0, ];
如果数据在响应的根目录中,请使用_
字符作为字段名(即使这意味着您的端点不提供分页数据)。
3. 问题、疑问和拉取请求
您可以在问题部分中报告问题并提出疑问。请以ISSUE:开头报告问题,以QUESTION开头提问
如果您有疑问,请先查看已关闭的问题。随着时间的推移,我已经回答了许多问题。
要提交拉取请求,请先分叉此存储库,创建一个新的分支,并在其中提交您的新/更新代码。然后从您的分支打开拉取请求。有关更多信息,请参阅此指南。