场景:存储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开头,而不管上次通话中发生了什么?
答案 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]
})