API的分页是否有标准语法?

时间:2015-06-25 01:56:04

标签: api

我们在指定页码与行号以及每页行数之间存在争议。例如。得到21-40行可能是

function getUsers(client, fn){
    client.keys('*', function(err, keys) {
        var values = {};
        var remainingRequests = keys.length;
        keys.forEach(function(key) {
            // Note that this will run keys.length requests in parallel
            // forEach does not (and cannot) wait for the async calls to finish
            client.hgetall(key, function(err, vals){
                remainingRequests -= 1;
                if (!err) {
                    values[key] = vals;
                }
                if (remainingRequests === 0) {
                    fn(values);
                }
            });
        });
    });
}

outer.get('/accounts', function(req, res){
    db_functions.getUsers(client, function(values){
        res.json(values);
    });
});

page=2&rows=20

我知道这是一个意见问题,但有任何标准或最佳做法吗?

2 个答案:

答案 0 :(得分:0)

这实际上取决于数据的来源和消费者,但为了进行比较,REST best practices(警告,PDF!)指定offsetlimit参数,如第二个示例中所示

我认为如果页面可能包含不同数量的行,该文档声称这更简单;你的里程可能会有所不同。

答案 1 :(得分:0)

显然两者都有效,但我经常看到页面。从UI的角度来看,用户可能不知道偏移意味着什么......但是他们期望改变页面字段。此外,如果您使用页面,则应限制应限制的值。分页的目的是确保后端不会将大量数据发送回UI,因此只提供一些选项(或选择用户)就可以实现这一目标。