首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API分页,如何实现分页token分页方法?

API分页,如何实现分页token分页方法?
EN

Stack Overflow用户
提问于 2017-06-21 00:22:19
回答 1查看 1.4K关注 0票数 4

我正在为我的项目实现一个API接口。

据我所知,有不同的形式在结果中进行分页,如下所示:

代码语言:javascript
复制
https://example.com/api/purchaseorders?page=2&pagesize=25  

但是,我看到像谷歌这样的许多API使用了一种不同的方法,它们使用"pageToken“让用户在结果页面之间移动,例如:

代码语言:javascript
复制
https://example.com/api/purchaseorders?pagesize=25&pageToken=ClkKHgoRc291cmNlX2NyZWF0ZWRfYXQSCQjA67Si5sr

所以他们用pageToken=[token]代替了page=2

我不清楚pageToken的概念和如何实现它。

如果你能引导我找到任何资源,让我获得更多的知识,这将是很有帮助的。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-06-21 00:43:46

下面是一个非常简单的独立示例,它使用文件系统作为键值存储(因为文件系统总是可用的)。

代码语言:javascript
复制
$requestParameters = [];
if (($token = filter_input(INPUT_GET,"pageToken")) && is_readable("/tmp/$token")) {
   $requestParameters = file_get_contents("/tmp/$token");
} else {   
    $requestParameters = [
       "q" => filter_input(INPUT_GET,"q"),
       "pageSize" => filter_input(INPUT_GET,"pageSize",FILTER_VALIDATE_INT),
       "page" => filter_input(INPUT_GET,"page",FILTER_VALIDATE_INT)
   ];
}

$nextPageRequestParameters = $requestParameters;
$nextPageRequestParameters["page"]++;

$nextPageToken = md5(serialize($nextPageRequestParameters)); //This is not ideal but at least people can't guess it easily. 


file_put_contents("/tmp/$nextPageToken", serialize($nextPageRequestParameters));

//Do request using $requestParameters 
$result = [ "nextPageToken" => $nextPageToken, "data" => $resultData ];
echo json_encode($result);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44658338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档