如何通过Fivetran REST API跨多组列出所有连接器?
解决Fivetran API跨组列出所有连接器的405错误问题
问题原因
https://api.fivetran.com/v1/connectors端点仅支持POST请求用于创建新连接器,不提供GET方式列出所有连接器的功能,这是你收到405错误的核心原因。
解决方案
有两种可行方式获取跨组的所有连接器:
方案1:遍历所有组,逐个获取组内连接器
基于你已有的获取组列表的代码,提取每个组ID后,调用对应组的连接器列表接口:
import requests import json # 获取所有组信息 groups_url = "https://api.fivetran.com/v1/groups" headers = { "Accept": "application/json;version=2", "Authorization": "Basic yourkeyetc" # 替换为你的真实授权密钥 } groups_response = requests.get(groups_url, headers=headers) groups_parsed = json.loads(groups_response.text) # 遍历组,收集所有连接器 all_connectors = [] for group in groups_parsed["data"]["items"]: group_id = group["id"] connectors_url = f"https://api.fivetran.com/v1/groups/{group_id}/connectors" connectors_response = requests.get(connectors_url, headers=headers) connectors_parsed = json.loads(connectors_response.text) all_connectors.extend(connectors_parsed["data"]["items"]) # 输出所有连接器详情 print(json.dumps(all_connectors, indent=4))
方案2:使用批量查询端点POST /v1/connectors/list
Fivetran提供批量查询连接器的专用端点,通过POST请求可一次性获取所有(或指定组的)连接器:
import requests import json url = "https://api.fivetran.com/v1/connectors/list" headers = { "Accept": "application/json;version=2", "Authorization": "Basic yourkeyetc", # 替换为你的真实授权密钥 "Content-Type": "application/json" } # 请求体传空数组或留空表示获取所有组的连接器,也可指定group_ids筛选 payload = json.dumps({ "group_ids": [] }) response = requests.post(url, headers=headers, data=payload) parsed = json.loads(response.text) # 输出所有连接器详情 print(json.dumps(parsed["data"]["items"], indent=4))
注意事项
- 确保你的API密钥拥有访问所有组连接器资源的权限
- 若组数量较多,方案1可适当添加请求延迟(如
time.sleep(1)),避免触发API限流
内容的提问来源于stack exchange,提问作者DarknessPlusPlus
相关产品推荐
相关产品推荐

