我不使用主题树 API 调用 - 它返回大约 50 MB 的数据。我宁愿使用 API 调用“ http://www.khanacademy.org/api/v1/topic/%s ”单独遍历树的节点,其中 %s 是“node_slug”字段,以“node_slug”开头“根”。
从那里您使用“children”和“child_data”条目来遍历子节点。“children”具有详细信息,“child_data”基本上只是它们出现的顺序。
对于每个节点,有两个重要的字段需要查看,“kind”和“render_type”。
“种类”可以具有以下值:
- “话题”
- “视频”
- “锻炼”
- “文章”
- “便笺”
- “分隔器”
“render_type”可以具有以下值:
- “根”
- “领域”
- “学科”
- “话题”
- “教程”
- “未经策划的教程”
因此,从“root”开始,您遍历子节点以查找具有“render_type”=“Domain”的节点。这将为您提供“数学”、“科学”等内容。现在您可以使用“数学”节点遍历其下的主题,寻找“render_type”=“主题”。其中你会发现 7 年级等。
注意:域和主题节点都有“kind”=“Topic”,因此您应该确保检查这些节点,然后使用“render_type”来查找域或主题的区别。
我还要做的是缓存 JSON 响应,这样应用程序就不必从网站重新加载它们。我可以选择在需要时从网站上刷新它们。
然后,您可以使用主题节点进一步遍历其子节点以获取视频、练习、文章等。