shopify
shopify copied to clipboard
Support Shopify's new cursor-based pagination
See: https://help.shopify.com/en/api/guides/paginated-rest-results
Introduced in API version 2019-07
This version is not backwards compatible; sending the page
parameter fails w/ 400
and "page" => "page cannot be passed. See https://help.shopify.com/api/guides/paginated-rest-results for more information."
This is an important feature to me and I'm willing to put in some work to implement this. On April 1, 2020, API Version 2019-04 will be dropped and that will mean that page-based pagination will no longer be available. We'll need to update our apps to use cursor-based pagination by this date.
At a minimum, this lib will need to return the HTTP response headers so that the caller will have access to the Link
headers described in https://help.shopify.com/en/api/guides/paginated-rest-results. I propose that we add a headers
field to the Shopify.Response
struct. Having access to the headers is important for other reasons too, such as having access to the X-Shopify-Shop-Api-Call-Limit
header. This week I hope to submit a pull-request for this.
As a separate task, we can create a more convenient API for pagination. I think the best way to do this would be to implement an Enumerable
that automatically fetches new pages of results as needed. I've had a great experience using this approach in the past. I'd be happy to contribute a pull-request for this but I may not have time until later this month.
Regarding adding :headers
to the Shopify.Response
struct - that would be great. Exactly how I envisioned fixing this issue - just havent had time. A PR would be much appreciated :+1:
As a follow up, please feel free to submit an issue + PR for your Enumerable
implementation.