Drupal 8.
I created views in rest mode for send 10 items per page. But the native pager was not works for me.
So, I implemented hook_views_query_alter() for set up custom pager settings with limit and offset.
1) Create custom_rest_api.views_executable.inc file for implement the hook
2) Set views offset and page limit
/**
* @file
* Containts custom_rest_api.views_executable.inc.
*/
use Drupal\views\Plugin\views\query\QueryPluginBase;
use Drupal\views\ViewExecutable;
/**
* Implements hook_views_query_alter().
*/
function custom_rest_api_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
if ($view->id() == "news" && !empty($view->args)) {
$number = (int) ($view->args[0]);
$number--;
$limit = 10;
$offset = $limit * $number;
$view->setOffset($offset);
$view->getPager()->setItemsPerPage($limit);
}
}