用于分页的保留属性名
最后更新于:2022-04-01 06:07:22
下面的属性位于_data_对象中,用来给一列数据分页。一些语言和概念是从OpenSearch规范中借鉴过来的。
下面的分页数据允许各种风格的分页,包括:
* 上一页/下一页 - 允许用户在列表中前进和后退,一次一页。_nextLink_ 和_previousLink_属性 (下面的"链接保留属性名"部分有描述) 用于这种风格的分页。
* 基于索引的分页 - 允许用户直接跳到条目列表的某个条目位置。例如,要从第200个条目开始载入10个新的条目,开发者可以给用户提供一个URL的查询字符串_?startIndex=200_。
* 基于页面的分页 - 允许用户直接跳到条目内的具体页。这跟基于索引的分页很类似,但节省了开发者额外的步骤,不需再为新一页的条目计算条目索引。例如,开发人员可以直接跳到第20页,而不是跳到第200条条目。基于页面分页的网址,可以使用查询字符串_?page=1_或_?page=20_。_pageIndex_和 _totalPages_ 属性用作这种风格的分页.
在这份指南的最后可以找到如何使用这些属性来实现分页的例子。
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datacurrentitemcount)data.currentItemCount
~~~
属性值类型: 整数(integer)
父节点: data
~~~
结果集中的条目数目。应该与items.length相等,并作为一个便利属性提供。例如,假设开发者请求一组搜索条目,并且要求每页10条。查询集共有14条。第一个条目页将会有10个条目,因此_itemsPerPage_和_currentItemCount_都应该等于10。下一页的条目还剩下4条;_itemsPerPage_仍然是10,但是_currentItemCount_是4.
示例:
~~~
{
"data": {
// "itemsPerPage" 不需要与 "currentItemCount" 匹配
"itemsPerPage": 10,
"currentItemCount": 4
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#dataitemsperpage)data.itemsPerPage
~~~
属性值类型: 整数(integer)
父节点: data
~~~
items结果的数目。未必是data.items数组的大小;如果我们查看的是最后一页,data.items的大小可能小于_itemsPerPage_。但是,data.items的大小不应超过_itemsPerPage_。
示例:
~~~
{
"data": {
"itemsPerPage": 10
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datastartindex)data.startIndex
~~~
属性值类型: 整数(integer)
父节点: data
~~~
data.items中第一个条目的索引。为了一致,_startIndex_应从1开始。例如,第一组items中第一条的_startIndex_应该是1。如果用户请求下一组数据,_startIndex_可能是10。
示例:
~~~
{
"data": {
"startIndex": 1
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datatotalitemsx)data.totalItemsx
~~~
属性值类型: 整数(integer)
父节点: data
~~~
当前集合中可用的总条目数。例如,如果用户有100篇博客文章,响应可能只包含10篇,但是_totalItems_应该是100。
示例:
~~~
{
"data": {
"totalItems": 100
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datapaginglinktemplate)data.pagingLinkTemplate
~~~
属性值类型: 字符串(string)
父节点: data
~~~
URL模板指出用户可以如何计算随后的分页链接。URL模板中也包含一些保留变量名:表示要载入的条目的_{index}_,和要载入的页面的_{pageIndex}_。
示例:
~~~
{
"data": {
"pagingLinkTemplate": "http://www.google.com/search/hl=en&q=chicago+style+pizza&start={index}&sa=N"
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datapageindex)data.pageIndex
~~~
属性值类型: 整数(integer)
父节点: data
~~~
条目的当前页索引。为了一致,_pageIndex_应从1开始。例如,第一页的_pageIndex_是1。_pageIndex_也可以通过基于条目的分页而计算出来_pageIndex = floor(startIndex / itemsPerPage) + 1_。
示例:
~~~
{
"data": {
"pageIndex": 1
}
}
~~~
### [](https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md#datatotalpages)data.totalPages
~~~
属性值类型: 整数(integer)
父节点: data
~~~
当前结果集中的总页数。_totalPages_也可以通过上面基于条目的分页属性计算出来: _totalPages = ceiling(totalItems / itemsPerPage)._。
示例:
~~~
{
"data": {
"totalPages": 50
}
}
~~~