对于服务器端分页,服务器是否应该支持它?任何" API"有分页?

时间:2018-06-05 07:43:45

标签: angularjs rest api pagination

我想在我的" angularJs"中实现分页。应用。我有一个下拉菜单,我正在使用angular-ui。我想在第一个应用程序加载来自" API"的第一组数据。当在ngInfiniteScroll的帮助下滚动到按钮时,请求来自" API"的下一组数据。例如,首先在请求" URL"我添加" page = 1"作为参数和我添加到"页面"数。 我的问题是,这个分页应该是" API"具有分页功能,或者我可以为任何" API"? 如果" API"需要具备这种能力,你知道任何" API"具有分页功能,所以我可以测试我的应用程序? 感谢任何帮助。 我的代码是here

1 个答案:

答案 0 :(得分:1)

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

您可以根据需要为分页构建网址参数,例如: /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);
});