【问题标题】:How to use page based pagination In API Platform in graphql如何在graphql的API平台中使用基于页面的分页
【发布时间】:2020-07-11 20:54:46
【问题描述】:

我希望能够使用 https://api-platform.com/ 和 graphql 支持进行分页。

我启用了分页,我只能使用这些参数:

first: Int 返回列表中的前 n 个元素。

last: Int 返回列表的最后 n 个元素。

before: String 返回列表中之前的元素 指定的光标。

after: String 返回列表中后面的元素 指定光标。

问题是,例如,使用这些参数,我无法从第一页访问第 5 页。为此,我需要知道第 4 页最后一个元素的光标。

我是否误解了该系统的可能性?

有没有办法使用 offset 之类的参数,我可以轻松地在 N 个第一个元素之后开始使用它?

【问题讨论】:

    标签: symfony graphql api-platform.com


    【解决方案1】:

    不,您不能对基于光标的分页应用相同的基于页面的行为。不存在“页面”的概念,因此请求特定页面是没有意义的。

    但是,在 API 平台的主版本(尚未发布)中,您可以为 GraphQL 启用基于页面的分页。

    文档在这里:https://api-platform.com/docs/master/core/graphql/#using-the-page-based-pagination

    【讨论】:

    • 谢谢,你能解释一下为什么offset 参数会破坏基于光标的概念吗?
    • 因为偏移量在基于光标的分页中没有意义。您不是在请求 n 个元素之后的元素,而是请求光标之后的元素。光标之前的元素数量可能会迅速变化,并且光标可以精确定位您所在的位置,而不必担心它之前的元素是否增加了。
    • 请阅读medium.com/@meganchang_96378/…了解更多信息。
    猜你喜欢
    • 2021-04-09
    • 2021-07-18
    • 1970-01-01
    • 2018-10-06
    • 2014-04-14
    • 1970-01-01
    • 2015-07-06
    • 2018-02-01
    • 2019-06-29
    相关资源
    最近更新 更多