用途:该技能面向 Semantic Link Labs 中 REST API 封装函数的实现,适用于新增 API 封装、理解 _base_api 辅助函数、处理分页与长时间运行操作(LRO)、错误处理以及排查调试 API 相关问题。
主要能力与核心组件:Semantic Link Labs 使用 sempy.fabric.FabricRestClient 作为底层 HTTP 客户端,并由 _base_api 辅助函数封装。_base_api 位于 src/sempy_labs/_helper_functions.py,是发起 API 调用的标准方式,参数包括 request、client、method、payload、status_codes、uses_pagination、lro_return_json、lro_return_status_code、lro_return_df。支持的 client 类型有 fabric、fabric_sp、azure、graph、onelake。返回类型按参数区分:默认返回 Response 对象,需调用 .json();uses_pagination=True 返回 list[dict];lro_return_json=True 返回 dict;lro_return_status_code=True 返回 int;lro_return_df=True 返回 DataFrame。
使用方式:实现前可用 search_public_api_doc.py 查找相关 API 文档,例如 cd .claude/skills/rest-api-patterns/scripts 后执行 python search_public_api_doc.py "dataset refresh",可用 --source fabric 或 --source powerbi 限定来源,--limit 限制结果数。该脚本依赖 rapidfuzz 和 requests,需 pip install rapidfuzz requests。构建带查询参数的 URL 使用 _build_url;创建统一空 DataFrame 使用 _create_dataframe;更新数据类型使用 _update_dataframe_datatypes;非 Fabric 客户端(Azure、Graph)可通过 _get_headers 获取认证头。
限制与注意事项:资料明确提到常见错误是简单 GET 请求忘记对响应调用 .json(),否则会抛出 AttributeError。状态码不匹配时会抛出 FabricHTTPException,可通过 e.response.status_code 判断处理。Fabric REST API 与 Power BI REST API 的 Base URL 分别为 https://api.fabric.microsoft.com/v1/ 和 https://api.powerbi.com/v1.0/myorg/。具体收费标准、使用价格等资料暂未提供。