通过Shopify API获取产品列表时,分页在服务器端如何工作?

时间:2012-09-03 13:51:16

标签: api shopify

场景:存储1000个产品;需要全部下载。产品请求限制为每次呼叫最多250个产品,显然API可能会或可能不会返回所要求的“限制”。例如,从我观察到的情况来看,限制= 250的呼叫可能会返回少于250个项目。因此,要获得1000个产品,至少需要4个电话。

发出以下请求:

#1  GET /admin/products.xml?limit=250&page=1 (returned the first 250 products 1-250)
#2  GET /admin/products.xml?limit=250&page=2 (returned the next 250 products 251-500)
#3  GET /admin/products.xml?limit=250&page=3 (****returned only 200 products 501-700**)
#4  GET /admin/products.xml?limit=250&page=4 (****what does it return here?**)

所以,问题是关于服务器上的分页,它将定义上面第4行中发生的事情:

1)API是否执行智能分页,它知道前一个请求仅返回200个产品,因此下一页必须返回以产品编号701开头的列表?

2)是否执行盲目分页,其中第4页的请求始终以产品编号751开头,而不管上次通话中发生了什么?

2 个答案:

答案 0 :(得分:2)

使用/admin/products/count.json获取所有产品的数量。然后将该数字除以250以获得总页数。

答案 1 :(得分:0)

如果在轨道中,您可以使用shopify api gem在shopify API中传递参数,也可以直接使用Shopify API来发送参数。

ShopifyAPI::Product.find(:all, params: { page: parmas[:page], 
                                         limit: 10, 
                                         title: params[:search]
                                       })