[ https://issues.apache.org/jira/browse/SLING-10309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17346152#comment-17346152 ]
Radu Cotescu commented on SLING-10309: -------------------------------------- Java API implemented in [commit e4813e5|https://github.com/apache/sling-org-apache-sling-graphql-core/commit/e4813e5fdcc522dd56f9b9497dcc755679fd5e92], {{@connection}} directive implemented in [commit b8cb935|https://github.com/apache/sling-org-apache-sling-graphql-core/commit/b8cb93580412bc09fb474b37e21f0363815064f3]. > 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)