在阿里云宜搭(Yida)中,默认情况下,搜索表单实例 ID 列表的接口(如 ListFormInstances
)可能会限制返回的数据条数(例如最多返回 100 条)。如果你需要获取超过 100 条数据,可以通过以下方法实现:
1. 分页查询
宜搭的接口通常支持分页查询功能,通过设置分页参数(如 pageSize
和 pageNumber
),可以逐步获取所有数据。
步骤:
设置分页参数:
pageSize
:每页返回的数据条数(例如设置为 100)。pageNumber
:当前页码(从 1 开始)。循环查询:
通过循环调用接口,逐步获取所有数据。
每次查询后,检查返回结果中的
totalCount
和pageNumber
,判断是否需要继续查询下一页。
示例代码(伪代码):
let pageSize = 100; // 每页条数 let pageNumber = 1; // 当前页码 let totalCount = 0; // 总条数 let allData = []; // 存储所有数据 do { // 调用宜搭接口获取数据 const response = await fetch(`/api/form/instances?pageSize=${pageSize}&pageNumber=${pageNumber}`); const data = await response.json(); // 将当前页的数据添加到总数据中 allData = allData.concat(data.items); // 更新总条数和页码 totalCount = data.totalCount; pageNumber++; } while (allData.length < totalCount); // 判断是否还有下一页 console.log(allData); // 所有数据
2. 使用宜搭的 API 文档
宜搭提供了详细的 API 文档,你可以参考文档中的分页参数说明。
参考接口:
接口名称:
ListFormInstances
API 文档地址:宜搭 API 文档
分页参数:
pageSize
:每页返回的数据条数(最大值通常为 100)。pageNumber
:当前页码(从 1 开始)。
3. 注意事项
性能问题:如果数据量非常大(例如超过 10,000 条),分页查询可能会影响性能。建议优化查询条件,减少数据量。
接口调用频率:避免频繁调用接口,以免触发宜搭的限流机制。
错误处理:在循环查询过程中,注意处理接口返回的错误信息。
4. 示例场景
假设你需要获取某个表单中所有状态为“已完成”的实例 ID 列表,且数据量超过 100 条。
实现步骤:
设置查询条件:
在接口中设置查询条件,例如
status = "已完成"
。分页查询:
使用分页参数逐步获取所有数据。
示例代码(伪代码):
let pageSize = 100; let pageNumber = 1; let totalCount = 0; let allData = []; do { // 调用宜搭接口获取数据 const response = await fetch(`/api/form/instances?status=已完成&pageSize=${pageSize}&pageNumber=${pageNumber}`); const data = await response.json(); // 将当前页的数据添加到总数据中 allData = allData.concat(data.items); // 更新总条数和页码 totalCount = data.totalCount; pageNumber++; } while (allData.length < totalCount); console.log(allData); // 所有数据
总结
通过分页查询的方式,可以获取超过 100 条的表单实例 ID 列表。关键步骤包括设置分页参数、循环调用接口,并处理返回的数据。如果数据量较大,建议优化查询条件,避免性能问题。