Zend亚博esk票务、语音和帮助中心api有几个端点,它们返回项目列表,比如票务、用户或文章。出于性能原因,API不会一次返回大量的记录集。它将结果分解成更小的子集,并在页面中返回它们。每页的项数因端点而异。例如,票据和用户端点每页返回100个项目,而文章端点每页返回30个项目。

本文解释了如何使用游标分页对列表进行分页。游标分页已经被大多数资源所支持,比如票据和用户。亚博电脑端它正逐步被引入所有资源。亚博电脑端有关特定资源,请参阅API文档。

亚博Zendesk建议尽可能使用光标分页而不是偏移分页。当检索非常大的记录集时,游标分页大大提高了性能。看到比较游标分页和偏移分页以比较Zendesk api支持的不同分页方法。亚博

免责声明Ze亚博ndesk提供本文仅用于指导目的。亚博Zendesk不支持或保证代码。亚博Zendesk也不能支持第三方技术,如Python和Ruby。

启用游标分页

若要使用游标分页而不是偏移分页,请包含页面(大小)参数在请求的路径中。此参数指定每页要返回的项数。大多数端点将此限制为最多100个。有关特定资源,请参阅API文档。

如果你没有指定a页面(大小)参数时,请求将恢复到偏移分页。

HTTP响应包含用于请求下一页的元数据。例如,对带有URL的票据端点的请求https://example.亚博zendesk.com/api/v2/tickets.json?page(大小)= 100返回一个格式如下的响应:

             
“门票”]“元”{“has_more”真正的“after_cursor”“xxx”“before_cursor”“多”}“链接”{“下一个”“https://example.亚博zendesk.com/api/v2/tickets.json?page(大小)= 100和页面(后)= xxx”“上一页”“https://example.亚博zendesk.com/api/v2/tickets.json?page(大小)= 100和页面(前)= yyy”}

要请求下一页,可以使用下一个链接或after_cursor游标。看到与下一个链接分页使用后光标进行分页

何时停止分页

继续请求下一页,直到has_more属性嵌套在对象为false。这表明没有进一步的记录,您应该停止分页。

到达记录结束后,可以保存的值下一个after_cursor以便在将来检索新记录。

偶尔,您可能会得到一个空的记录集,其中after_cursorbefore_cursor下一个上一页都是空的has_more在前一页是正确的。当前页返回的最后一条记录是整个记录集中的最后一条记录时,就会发生这种情况。在本例中,保存之前的值after_cursor供将来使用。

属性指定的URL下一个的性质链接对象检索下一页的结果。

             
“链接”{“下一个”“https://example.亚博zendesk.com/api/v2/tickets?page%5Bafter%5D=aQAAAAAAAAAAZGYzylUAAAAAaYBxUAwAAAAA&page%5Bsize%5D=20”}

方法指定的URL发出请求下一个财产。

请注意:某些资源没有亚博电脑端下一个属性在他们的反应中。在这种情况下,您可以使用after_cursor属性检索下一页的结果。看到使用后光标进行分页

本例以第三方服务器为例axios图书馆。

             
常量axios需要“axios”//在生产中,将凭据存储在环境变量中常量亚博ZENDESK_SUBDOMAIN“YOUR_亚博ZENDESK_SUBDOMAIN”常量亚博ZENDESK_EMAIL“YOUR_亚博ZENDESK_EMAIL_ADDRESS”常量亚博ZENDESK_PASSWORD“YOUR_亚博ZENDESK_PASSWORD”urlhttps://$ {亚博ZENDESK_SUBDOMAIN}.亚博zendesk.com/api/v2/users.json常量身份验证{用户名亚博ZENDESK_EMAIL密码亚博ZENDESK_PASSWORD}参数个数{“页面大小”10}异步= >{{常量响应等待axios得到url{身份验证身份验证参数个数参数个数}常量数据响应数据//处理数据常量用户数据用户{控制台日志用户名字}如果数据has_more{url数据链接下一个}其他的{url}}url}

本例以第三方服务器为例请求图书馆。

             
进口请求在生产环境中,将凭据存储在环境变量中亚博ZENDESK_SUBDOMAIN“YOUR_亚博ZENDESK_SUBDOMAIN”亚博ZENDESK_EMAIL“YOUR_亚博ZENDESK_EMAIL_ADDRESS”亚博ZENDESK_PASSWORD“YOUR_亚博ZENDESK_PASSWORD”urlf“https://{亚博ZENDESK_SUBDOMAIN}.亚博zendesk.com/api/v2/users.json”身份验证亚博ZENDESK_EMAIL亚博ZENDESK_PASSWORD参数个数{页面(大小)的10}url响应请求得到url身份验证身份验证参数个数参数个数数据响应json#处理数据用户数据“用户”]打印用户“名字”]如果数据“元”]“has_more”]url数据“链接”]“下一个”]其他的url没有一个

使用后光标进行分页

要请求下一页,请复制after_cursor的响应值页面(后)下一个请求的路径参数。

             
“元”{“has_more”真正的“after_cursor”“aQAAAAAAAAAAZGYzylUAAAAAaYBxUAwAAAAA”}

下面的示例复制after_cursor的响应值页面(后)下一个请求的路径参数。

请注意:某些资源限制了多长亚博电脑端时间的价值after_cursor是有效的。有关特定资源,请参阅API文档。

带有after游标的Node.js示例

             
常量axios需要“axios”//在生产中,将凭据存储在环境变量中常量亚博ZENDESK_SUBDOMAIN“YOUR_亚博ZENDESK_SUBDOMAIN”常量亚博ZENDESK_EMAIL“YOUR_亚博ZENDESK_EMAIL_ADDRESS”常量亚博ZENDESK_PASSWORD“YOUR_亚博ZENDESK_PASSWORD”urlhttps://$ {亚博ZENDESK_SUBDOMAIN}.亚博zendesk.com/api/v2/users.json常量身份验证{用户名亚博ZENDESK_EMAIL密码亚博ZENDESK_PASSWORD}参数个数{“页面大小”10}异步= >{{常量响应等待axios得到url{身份验证身份验证参数个数参数个数}常量数据响应数据//处理数据常量用户数据用户{控制台日志用户名字}如果数据has_more{参数个数“页面(后)”]数据after_cursor}其他的{url}}url}

带有after游标的Python示例

             
进口请求在生产环境中,将凭据存储在环境变量中亚博ZENDESK_SUBDOMAIN“YOUR_亚博ZENDESK_SUBDOMAIN”亚博ZENDESK_EMAIL“YOUR_亚博ZENDESK_EMAIL_ADDRESS”亚博ZENDESK_PASSWORD“YOUR_亚博ZENDESK_PASSWORD”urlf“https://{亚博ZENDESK_SUBDOMAIN}.亚博zendesk.com/api/v2/users.json”身份验证亚博ZENDESK_EMAIL亚博ZENDESK_PASSWORD参数个数{页面(大小)的10}url响应请求得到url身份验证身份验证参数个数参数个数数据响应json#处理数据用户数据“用户”]打印用户“名字”]如果数据“元”]“has_more”]参数个数的页面(后)]数据“元”]“after_cursor”]其他的url没有一个

筛选结果

某些资源允许过滤亚博电脑端由某些属性设置的记录。例如,可以按角色过滤用户。有关特定资源,请参阅API文档。

排序结果

某些资源允许按某亚博电脑端些属性对记录集进行排序。例如,票证可以根据其创建日期进行排序。有关特定资源,请参阅API文档。

限制

使用游标分页时,不可能跳转到记录集中的任意页码或位置。

当使用游标分页时,不提供集中的记录总数。某些资源提供不同亚博电脑端的端点来检索此值。例如,可以使用URL检索用户总数https://example.亚博zendesk.com/api/v2/users/count.json。有关特定资源,请参阅API文档。

在对列表进行分页时,由于添加、删除或修改记录,已分页的数据可能不准确。减少分页不准确性的一种方法(虽然不能完全消除它们)是根据不能修改的属性(如id或创建日期,如果资源支持的话)对记录进行排序。