我正在为我的项目实现一个API接口。
据我所知,有不同的形式在结果中进行分页,如下所示:
https://example.com/api/purchaseorders?page=2&pagesize=25 但是,我看到像谷歌这样的许多API使用了一种不同的方法,它们使用"pageToken“让用户在结果页面之间移动,例如:
https://example.com/api/purchaseorders?pagesize=25&pageToken=ClkKHgoRc291cmNlX2NyZWF0ZWRfYXQSCQjA67Si5sr所以他们用pageToken=[token]代替了page=2。
我不清楚pageToken的概念和如何实现它。
如果你能引导我找到任何资源,让我获得更多的知识,这将是很有帮助的。
谢谢。
发布于 2017-06-21 00:43:46
下面是一个非常简单的独立示例,它使用文件系统作为键值存储(因为文件系统总是可用的)。
$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);https://stackoverflow.com/questions/44658338
复制相似问题