关于datawhale接口的调研 #2
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
截至 2026-07-23,结论是:能拿到,而且数据比较完整。但只有“成员可视化 GraphQL”属于有公开文档的 API;Datawhale 官网和 AILC 使用的是前端内部接口,匿名可访问,但不应视为稳定的官方开放平台。
Datawhale 官网
已验证以下接口返回 HTTP 200:
GET /api/learn/v2/queryLearnInfo?learnId=212GET /api/learn/v2/detail?learnId=212GET /api/activity/v2/queryActivityDetail?activityId=569GET /api/article/v2/query?id=743课程章节和资讯详情还会返回 OSS 上的正文 JSON 地址,因此技术上可以在游戏内渲染完整内容。
限制是:从 WhaleTown Web 域名直接调用这些接口会返回
403 Invalid CORS request。Godot Web 不能直接请求,必须通过鲸落镇后端同步或代理。服务端无Origin请求可以正常访问。AILC 学习中心
AILC 的接口域名是:
已确认可匿名读取:
能获得:
但匿名用户的个人完成状态、证书签发状态都返回
false。也就是说:个人进度融合需要 Datawhale 提供正式登录授权、账号绑定、签名回调或服务端 Token。
另外,AILC 响应中包含部分参与者头像地址。建议只同步人数等汇总数据,不存储或展示这些头像,除非经过隐私和授权确认。
成员可视化 GraphQL
这是目前最适合直接集成的来源,具有正式的 GraphQL API 文档:
我实际验证了匿名查询:
当前返回成员数
776。还支持:membersstatsleaderboardsprojectsorganizationscommitStats该接口允许任意域名跨域调用,数据来自静态 JSON,并由 GitHub Actions 定期更新。因此很适合鲸落镇荣誉榜、贡献者名片和开源项目展示。
对鲸落镇的建议
第一阶段可以直接接入:
第二阶段再与 Datawhale 协商:
现有项目已经接入了课程列表,并采用后端同步模式:[course_resources.service.ts (line 10)](/home/server/whaletown/whale-town-end-v2/src/business/course_resources/course_resources.service.ts:10) 和 [CourseBoardPanel.gd (line 11)](/home/server/whaletown/whale-town-front-v2/scenes/ui/CourseBoardPanel.gd:11)。因此下一步最自然的是扩展成统一的
</html>截至 2026-07-23,结论是:能拿到,而且数据比较完整。但只有“成员可视化 GraphQL”属于有公开文档的 API;Datawhale 官网和 AILC 使用的是前端内部接口,匿名可访问,但不应视为稳定的官方开放平台。DatawhaleConnector,而不是让 Godot 分别直接访问这些站点。此次仅进行了调研,没有修改代码。Access-Control-Allow-Origin: *Datawhale 官网
已验证以下接口返回 HTTP 200:
GET /api/learn/v2/queryLearnInfo?learnId=212GET /api/learn/v2/detail?learnId=212GET /api/activity/v2/queryActivityDetail?activityId=569GET /api/article/v2/query?id=743课程章节和资讯详情还会返回 OSS 上的正文 JSON 地址,因此技术上可以在游戏内渲染完整内容。
限制是:从 WhaleTown Web 域名直接调用这些接口会返回
403 Invalid CORS request。Godot Web 不能直接请求,必须通过鲸落镇后端同步或代理。服务端无Origin请求可以正常访问。AILC 学习中心
AILC 的接口域名是:
已确认可匿名读取:
能获得:
但匿名用户的个人完成状态、证书签发状态都返回
false。也就是说:个人进度融合需要 Datawhale 提供正式登录授权、账号绑定、签名回调或服务端 Token。
另外,AILC 响应中包含部分参与者头像地址。建议只同步人数等汇总数据,不存储或展示这些头像,除非经过隐私和授权确认。
成员可视化 GraphQL
这是目前最适合直接集成的来源,具有正式的 [GraphQL API 文档](https://members-visualization.vercel.app/api/docs):
我实际验证了匿名查询:
当前返回成员数
776。还支持:membersstatsleaderboardsprojectsorganizationscommitStats该接口允许任意域名跨域调用,数据来自静态 JSON,并由 GitHub Actions 定期更新。因此很适合鲸落镇荣誉榜、贡献者名片和开源项目展示。