调用第三方REST API时能否对路径参数{id}使用通配符批量查询1-10的ID
批量查询REST API路径ID问题解答
- 绝大多数第三方REST API 不支持路径ID参数直接使用通配符实现批量遍历。这类路径格式为
/sites/{id}/的接口默认是单资源查询接口,仅接受单个合法ID作为参数,传入通配符通常会返回400参数错误或404响应。 - 优先查询对应API的官方文档,确认是否提供专门的批量查询入口,比如参数形式为
/sites?ids=1,2,3...或者路径为/sites/batch的专用接口,官方批量接口的响应效率和请求成本都远优于循环调用单资源接口。 - 如果没有官方批量接口,可以通过Python循环调用单资源接口实现需求,参考代码示例如下:
import requests import time # 替换为实际API的前缀地址 API_PREFIX = "https://替换为你的API服务域名/sites/{}/" QUERY_ID_RANGE = range(1, 11) query_results = [] for current_id in QUERY_ID_RANGE: try: response = requests.get(API_PREFIX.format(current_id), timeout=10) if response.status_code == 200: query_results.append(response.json()) else: print(f"ID {current_id} 查询失败,状态码:{response.status_code}") # 按需调整等待时长,避免触发API限流 time.sleep(0.5) except Exception as e: print(f"ID {current_id} 请求异常:{str(e)}") # 后续可自行处理query_results中存储的返回数据
- 循环请求时注意控制请求频率,严格遵守对应API的限流规则,避免被接口服务方临时封禁。
内容的提问来源于stack exchange,提问作者baz
相关产品推荐
相关产品推荐

