API分页问询:Matillion调用Plytix API时URL传参或动态请求体分页实现
问题解答
能否通过URL参数实现分页?
不行。根据测试结果和Plytix API的要求,该接口仅识别请求体中的pagination参数,URL上的page/pageSize参数会被忽略,接口将返回默认的第1页、每页25条数据。因此必须通过请求体传递分页参数才能生效。
如何在Matillion中动态设置请求体的分页参数?
你需要修改Script Paging的脚本,直接操作请求体而非URL参数,具体步骤和示例脚本如下:
修改思路
- 初始化请求体结构,确保包含
pagination节点(第一次请求时设置初始分页值) - 从响应中提取当前页码,计算下一页
- 更新请求体里的
pagination.page字段 - 根据API返回的分页信息设置停止条件(建议用总页数判断,比固定页数更合理)
示例脚本
// 初始化请求体(首次请求时设置基础分页配置) var currentReqBody = @request.body.get(); if (!currentReqBody.pagination) { currentReqBody.pagination = { "order": "sku", "page": 1, "page_size": 100 }; @request.body.set(currentReqBody); } // 从响应中获取当前页码,计算下一页 var currentPage = @response.body.get("/data/pagination/page"); var nextPage = currentPage + 1; // 更新请求体中的页码参数 var updatedReqBody = @request.body.get(); updatedReqBody.pagination.page = nextPage; @request.body.set(updatedReqBody); // 停止条件:当下一页超过总页数时停止(假设API返回total_pages字段) var totalPages = @response.body.get("/data/pagination/total_pages"); @pager.stop(nextPage > totalPages);
注意事项
- 注意参数名格式:API要求请求体中是
page_size(下划线分隔),不是URL参数常用的pageSize(驼峰) - 优先用API返回的
total_pages判断停止,避免固定页数导致的漏取或多余请求 - 如果初始请求已有请求体,确保
pagination节点存在,否则需要先创建该节点再赋值
内容的提问来源于stack exchange,提问作者user26426873
相关产品推荐
相关产品推荐

