分页

最后更新于:2021-11-29 11:06:45

Pagination

GeChiUIGeChiUI网站可以包含大量内容——远远超过您在单个请求中想要下拉的内容。API端点默认为每个请求提供数量有限的项目,就像GeChiUI网站在存档结构中默认为每页10个文章一样。

分页参数

任何包含多个资源的API响应都支持几个常见的查询参数,以处理响应数据的分页:?page=:指定要返回的结果页面。例如,/gc/v2/posts?page=2是文章结果的第二页通过检索/gc/v2/posts,然后/gc/v2/posts?page=2,依此类推,您可以通过API访问每个可用文章,一次访问一个页面。

  • ?per_page=:指定一个请求中要返回的数据数量,指定为1到100的整数。例如,/gc/v2/posts?per_page=1将仅返回集合中的第一个文章
  • ?offset=:指定开始检索文章的任意偏移量例如,/gc/v2/posts?offset=6将使用每页的默认文章数量,但从集合中的第6个文章开始
  • ?per_page=5&page=4相当于?per_page=5&offset=15

提示:
大型查询可能会损害网站性能,因此per_page上限为100条数据。如果您希望检索100多条数据,例如构建所有可用类别的客户端列表,您可以提出多个API请求,并在应用程序中合并结果。

为了确定有多少页的数据可用,API返回两个标题字段,每个分页响应:

  • X-GC-Total:收藏中的数据总数
  • X-GC-TotalPages:包含所有可用数据的页数

通过检查这些标头字段,您可以确定API中有多少数据可用。

订购结果

除了上面详述的分页查询参数外,其他几个参数还控制返回结果的顺序:

  • ?order=:控制结果是按升序还是降序返回
    • 有效值是?order=asc(用于升序)和?order=desc(用于降序)。
    • 默认情况下,所有本机集合都按降序返回。
  • ?orderby=:控制集合的排序字段
    • orderby的有效值将因查询的资源而异;对于/gc/v2/posts集合,有效值为“日期”、“相关性”、“id”、“包括”、“标题”和“弹头”
    • 有关其他集合支持的值,请参阅REST API引用
    • 所有具有过时资源的集合默认为orderby=date