[ 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)