PowerShell调用REST API获取订单时突破单请求1000条返回限制方案咨询
PowerShell全量分页拉取订单适配方案
以下是适配接口单页1000条限制的实现,可拉取全量数据存入单个CSV文件,默认适配绝大多数API通用的offset分页规则:
完整可运行代码
# 基础参数配置 $baseApiUrl = "https://api.SomeWebisite.com/api/orders" $headers = @{ 'Content-Type' = 'application/json' 'Authorization' = 'Bearer SomeTokenKey' 'Accept' = 'application/json' } $pageSize = 1000 # 和接口单页上限保持一致 $offset = 0 $allOrderList = @() # 分页循环拉取 do { $requestUrl = "$baseApiUrl`?limit=$pageSize&offset=$offset" $apiResponse = Invoke-RestMethod -Uri $requestUrl -Method GET -Headers $headers $currentPageOrders = $apiResponse | Select-Object -ExpandProperty data # 当前页无数据时终止循环 if ($currentPageOrders.Count -eq 0) { break } $allOrderList += $currentPageOrders $offset += $pageSize # 可选:添加短延迟避免触发接口限流规则,按需调整时长或注释 Start-Sleep -Milliseconds 100 } while ($true) # 全量数据导出为CSV $allOrderList | Export-Csv -Path C:\extracts\orders.csv -NoTypeInformation -Force
特殊场景适配说明
- 如果接口使用游标分页(返回
next_page_token或下一页请求地址),只需调整循环逻辑:每次请求后提取返回结果中的下一页标识,没有下一页标识时终止循环即可,无需手动计算偏移量 - 如果数据总量超过10万条,可调整为每拉取3-5页就追加写入CSV,避免内存占用过高,追加写入只需给
Export-Csv添加-Append参数即可
内容的提问来源于stack exchange,提问作者Depth of Field
相关产品推荐
相关产品推荐

