Shopify REST分页API获取订单第二页报400错误求助
解决Shopify REST分页API携带page_info时的400错误
这个问题我之前帮开发者排查过,原因其实很明确——Shopify基于page_info的游标分页机制有个严格规则:一旦用游标(page_info)请求后续页面,就不能再传入任何会改变数据集过滤条件的参数,比如你这里的status=any。
为什么会触发这个错误?
Shopify的page_info参数本身已经包含了当前游标对应的数据集上下文(比如你初始请求的过滤条件、排序规则等),如果后续分页请求额外添加或修改过滤参数,会导致Shopify无法正确定位下一页的数据集范围,所以直接返回400 Bad Request提示参数冲突。
修正后的请求步骤
第一页请求(保留所有过滤参数)
发起初始请求时,把所有需要的过滤、限制参数都带上,比如你需要的status=any和limit=200:GET https://the-commerce-shop-1.myshopify.com/admin/api/2020-01/orders.json?limit=200&status=any这时候Shopify会返回包含
next_page_info的响应(通常在响应头的Link字段里),你提取这个值作为下一页的page_info参数。第二页及后续请求(移除过滤参数)
请求后续页面时,只保留limit(如果和初始请求一致也可以省略,但建议保持统一)和page_info参数,必须移除status这类过滤参数:GET https://the-commerce-shop-1.myshopify.com/admin/api/2020-01/orders.json?limit=200&page_info=eyJzdGF0dXMiOiJhbnkiLCJsYXN0X2lkIjoxODY4Njk3NjY1NTkxLCJsYXN0X3ZhbHVlIjoiMjAxOS0xMS0yNSAwOTozNjo1OSIsImRpcmVjdGlvbiI6Im5leHQifQ
额外提醒
Shopify的游标分页设计就是为了保证分页连贯性,所有影响数据集范围的条件(比如status、时间范围、排序规则等)都必须在初始请求时确定,后续分页请求不能修改这些条件,否则都会触发类似的参数冲突错误。
内容的提问来源于stack exchange,提问作者Sriramulu
相关产品推荐
相关产品推荐

