Pagination
For pagination apiato uses the L5 Repository Package and the
pagination gets applied whenever you use the paginate function on any model repository
(example: $stores = $this->storeRepository->paginate();).
Change the default pagination limit#
Open the .env file and set a number for PAGINATION_LIMIT_DEFAULT:
PAGINATION_LIMIT_DEFAULT=10This is used in the config/repository.php which is the config file of the L5 Repository Package.
Limit#
The ?limit= parameter can be applied to define, how many results should be returned on one page (see also Pagination!).
Usage:
api.domain.test/endpoint?limit=100This would return 100 resources within one page of the result. Of course, the limit and page query parameter can be
combined in order to get the next 100 resources:
api.domain.test/endpoint?limit=100&page=2In order to allow clients to request all data that matches their criteria (e.g., search-criteria) and disable pagination,
you can manually override the $allowDisablePagination property in your specific Repository class. A requester can then
get all data (with no pagination applied) by requesting api.domain.test/endpoint?limit=0. This will return all matching
entities.
Skip the Pagination Limit#
You can allow developers to skip the pagination limit as follows:
First, you need to enable that feature from the server by setting PAGINATION_SKIP to true (PAGINATION_SKIP=true).
Second, inform the developers (users) to pass ?limit=0 with the request they wish to get all it's data un-paginated.