Skip to content

Package for trasparently loading paginated rest resources into lazy collections

Notifications You must be signed in to change notification settings

robertogallea/Laravel-Lazy-Rest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

$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

'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. 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 for more info.

About

Package for trasparently loading paginated rest resources into lazy collections

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages