Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robertogallea/Laravel-Lazy-Rest
Package for trasparently loading paginated rest resources into lazy collections
https://github.com/robertogallea/Laravel-Lazy-Rest
Last synced: 3 months ago
JSON representation
Package for trasparently loading paginated rest resources into lazy collections
- Host: GitHub
- URL: https://github.com/robertogallea/Laravel-Lazy-Rest
- Owner: robertogallea
- Created: 2019-12-04T06:44:20.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-04-07T14:33:59.000Z (over 4 years ago)
- Last Synced: 2024-07-19T02:12:15.875Z (4 months ago)
- Language: PHP
- Size: 15.6 KB
- Stars: 14
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Laravel-Lazy-Rest
This package provides loading of RESTful paginated resources using Laravel LazyCollection capabilities. In this way, no complicate mechanisms for on-demand paginated data handling is required because the package manages all the complexity transparently for you, and only if required.
```php
$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. Installation
To install the package, run the command`composer require robertogallea/laravel-lazy-rest`
ServiceProvider and Facade alias included in the package are autoloaded automatically using Laravel auto-discovery
service.## 2. Configuration
By default, the package is configured to search for `data` field in the json response and `next_page_url` to detect how
to fetch the next page of results. However you could easily change this behavior by overriding default configuration:1. Publish config:
`php artisan vendor:publish --provider="robertogallea\LaravelLazyRest\LazyRestServiceProvider" --tag=config`2. Edit `config/lazy-rest.php`
```php
'fields' => [
'next_page_url' => 'next_page_url',
'data' => 'data','timeout' => 5.0,
];
```
if your data are in the root of the response use `_` character as field name (even though this means your endpoint
doesn't provide paginated data.# 3. Issues, Questions and Pull Requests
You can report issues and ask questions in the
[issues section](https://github.com/robertogallea/Laravel-Lazy-Rest/issues).
Please start your issue with ISSUE: and your question
with QUESTION:If you have a question, check the closed issues first. Over time, I've been able to answer quite a few.
To submit a Pull Request, please fork this repository, create a new branch and commit your new/updated code in there.
Then open a Pull Request from your new branch. Refer to
[this guide](https://help.github.com/articles/about-pull-requests/) for more info.