7.2.2 分页和排序
您可能注意到了在 home 资源的链接中,全部都有 page、size 和 sort 参数。默认情况下,像是对 /data-api/tacos
这种集合资源请求的接口来说,将会从第一页返回每页 20 个数据项。但是可以根据请求的要求,通过指定特定的 page 和 size 参数来调整页面大小和哪一页。
举个例子,要请求 tacos 的页面大小为 5 的第一页,可以发起以下 GET 请求(使用 curl):
$ curl "localhost:8080/data-api/tacos?size=5"
假设有多于 5 条 tacos 数据,可以通过添加 page 参数请求 tacos 数据的第二页:
$ curl "localhost:8080/data-api/tacos?size=5&page=1"
注意 page 参数是从 0 开始的,意思是请求第 1 页实际上是请求的第 2 页。(还会注意到许多 shell 命令行在请求中的 &
符号上出错,这就是为什么我在前面的 curl 命令中引用整个 URL 的原因。)
sort 参数允许根据实体的任何属性对结果列表进行排序。例如,需要一种方法来获取最近创建的 12个 tacos,以便 UI 显示,可以通过指定以下分页和排序参数组合来做到这一点:
$ curl "localhost:8080/data-api/tacos?sort=createdAt,desc&page=0&size=12"
这里,sort 参数指定了应该根据 createdDate 属性进行排序,并按降序排序(以便最新的 tacos 排在前面)。页面和大小参数的指定确定了应该在第一个页面上看到 12 个 tacos。
这正是 UI 为了显示最近创建的 tacos 所需要的。它与在本章前面的 TacoController 中定义的 /api/tacos?recent
端点大致相同。
现在,让我们切换思路,看看如何编写客户端代码,来使用我们创建的 API 端点。