для пагинации на стороне сервера должен ли сервер иметь поддержку для этого?какой-нибудь "API" с нумерацией страниц? - PullRequest
0 голосов
/ 05 июня 2018

Я хочу реализовать разбиение на страницы в моем приложении "angularJs".У меня есть выпадающее меню, которое я использую angular-ui для этого.Я хочу, чтобы сначала приложение загружало первый набор данных из «API», а при прокрутке к кнопке с помощью ngInfiniteScroll запрашивает следующий набор данных из «API».Например, сначала в запросе «URL» я добавляю «page = 1» в качестве параметра и для любого запроса добавляю к этому номеру «страницы».Мой вопрос заключается в том, что для этой нумерации страниц «API» должен иметь возможность нумерации страниц или я могу сделать это для любого «API»?Если «API» должен иметь такую ​​возможность, знаете ли вы какой-либо «API» с возможностью разбивки на страницы, чтобы я мог протестировать свое приложение?Ценю любую помощь.мой код здесь

1 Ответ

0 голосов
/ 05 июня 2018

API должен поддерживать разбиение на страницы в том смысле, что он должен иметь возможность отвечать на запросы с фрагментами данных, а не сбрасывать все данные за один раз.

Например:

Для страницы 1: your.api.endpoint/your/resource/path/countries?offset=0&pageSize=50

Для страницы 4: your.api.endpoint/your/resource/path/countries?offset=200&pageSize=50

Вы можете создать свои параметры URL для нумерации страниц, как хотите, например, /countries?pageNo=4&pageSize=50, /countries?from=200&to=250 и т. Д.

Примечание:

Когда вы реализуете нумерацию на стороне сервера, вам также необходимо реализовать сортировку и фильтрацию на стороне сервера;это связано с тем, что при разбивке на серверы клиент может видеть только 1 страницу данных, поэтому сортировка или фильтрация будут неточными.

РЕДАКТИРОВАТЬ, чтобы показать пример ложного ответа API

В вашем распоряжении может быть что-то вроде этого:

return $http({
    method: 'GET',
    url: 'your.api.endpoint/your/resource/path/countries?offset=200&pageSize=50'
})

И вы замените его на:

var pageOfData = { ... }; // Mocked data here.
return $q(function (resolve, reject) {
    resolve(pageOfData);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...