You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Radu Cotescu (Jira)" <ji...@apache.org> on 2021/05/17 13:11:00 UTC
[jira] [Resolved] (SLING-10309) GraphQL results pagination
[ https://issues.apache.org/jira/browse/SLING-10309?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Radu Cotescu resolved SLING-10309.
----------------------------------
Resolution: Fixed
> GraphQL results pagination
> --------------------------
>
> Key: SLING-10309
> URL: https://issues.apache.org/jira/browse/SLING-10309
> Project: Sling
> Issue Type: Improvement
> Components: GraphQL
> Affects Versions: GraphQL Core 0.0.8
> Reporter: Bertrand Delacretaz
> Assignee: Radu Cotescu
> Priority: Major
> Fix For: GraphQL Core 0.0.10
>
>
> We need a way to paginate results in the GraphQL Core module.
> We did some research with Radu around this, here are our initial findings:
> * Pagination should be based on cursors, not offsets. There's a good explanation of why at https://uxdesign.cc/why-facebook-says-cursor-pagination-is-the-greatest-d6b98d86b6c0
> * Pagination cursors should be opaque. They are often encoded in Base64 to express that, although that doesn't make much sense from a technical point of view (being easy to decode) but helps convey the "consider this thing as opaque" message.
> * https://relay.dev/graphql/connections.htm defines a commonly accepted way of expressing pagination in GraphQL results.
> * Automatically generating the "plurals" types, like Articles for an Article type, might be interesting and could include adding the required paging fields.
> * https://www.graphql-java-kickstart.com/tools/relay/ mentions the {{RelayConnectionFactory}} as a useful tool to generate the "standard" paging information
> * The {{SlingDataFetcherEnvironment}} needs to provide paging information such as the current cursor value and how many items are expected starting after it
> * The "Just the factoids" section of https://api.slack.com/docs/pagination nicely describes pagination in the Slack API, we should have something like that to clarify our "pagination pattern" and allow that pattern to be reused in other parts of Sling if needed.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)