HarmonyOS 官方文档 API 获取
文档站为 Angular SPA,页面 HTML 不含正文。代理不预设任何 URL,须通过 API 自行检索定位文档,技术细节见 reference.md。
工作流
1. 分析问题
从用户问题提取:关键词、内容类型(概念/步骤 → 指南,接口/组件 → API 参考,版本变更 → 版本说明)。
2. 选择 catalog
| 内容类型 | catalogName |
|---|---|
| 开发指南、场景指导 | harmonyos-guides |
| API / 组件 / Kit 接口 | harmonyos-references |
| 版本新增与变更 | harmonyos-releases |
不确定时并行查询 harmonyos-guides 与 harmonyos-references。
3. 获取目录树
对选定 catalog 调用 getCatalogTree(catalogName 与 objectId 均设为 catalog 根名),见 reference.md § getCatalogTree。
4. 在目录树中检索
用 search_nodes 按关键词匹配节点的 nodeName 与 relateDocument,见 reference.md § 目录树检索。
- 无匹配:换 catalog、拆分或放宽关键词后重试
- 多个匹配:优先标题吻合度高的;概念问题优先 guides,接口问题优先 references
- 命中目录节点(含
children):先拉取该节点文档作索引,再对其子节点继续检索或拉取
5. 拉取正文
对目标节点的 relateDocument 调用 getDocumentById,用 extract_html 解析 content,见 reference.md § getDocumentById。
content为空:该节点可能是纯目录,改拉其子节点- 信息不足:补充拉取相关兄弟节点或父节点
6. 回答
附上检索到的来源链接:{DOC}/{catalogName}/{relateDocument}。
用户提供了文档 URL 时
按 reference.md § URL 解析 提取 catalogName 与 slug,跳到步骤 5。
代理约束
- 禁止对文档页面 URL 使用 WebFetch 或直接 curl HTML
- 遇 403/429 按 reference.md § 错误处理 降速重试
- 接口非正式公开;无法确认时告知用户