mega icon indicating copy to clipboard operation
mega copied to clipboard

[r2cn] 迁移 Docs 相关的 API 到 Mega 中

Open benjamin-747 opened this issue 4 months ago • 10 comments

[任务] 迁移 Docs 相关的 API 到 Mega 中

[任务分值] 40 分

[背景描述]

目前与UI 相关的API 有以下这些:

获取 ● GET /organizations/{org_slug}/notes 获取笔记 ● GET /organizations/{org_slug}/notes/{noteId} 按笔记ID获取笔记 ● GET /organizations/{org_slug}/notes/{noteId}/comments 获取笔记评论 ●GET /organizations/{org_slug}/notes/{noteId}/attachments/{attachmentId}/comments 获取笔记附件评论 ●GET /organizations/{org_slug}/notes/{noteId}/views 获取笔记视图 ●GET /organizations/{org_slug}/notes/{noteId}/timeline-events 获取笔记时间线 ●GET /organizations/{org_slug}/notes/{noteId}/permissions 获取笔记权限

修改 ●PUT /organizations/{org_slug}/notes/{noteId} 更新笔记 ●PUT /organizations/{org_slug}/notes/{noteId}/visibility 更新笔记可见性 ●PUT /organizations/{org_slug}/notes/{noteId}/project-permissions 更新笔记项目权限

创建 ●POST /organizations/{org_slug}/notes 创建笔记 ●POST /organizations/{org_slug}/notes/{noteId}/comments 创建笔记评论 ●POST /organizations/{org_slug}/notes/{noteId}/views 创建笔记视图 ●POST /organizations/{org_slug}/notes/{noteId}/pin 置顶笔记 ●POST /organizations/{org_slug}/notes/{noteId}/follow-up 创建笔记跟进 ●POST /organizations/{org_slug}/notes/favorite 收藏笔记 ●POST /organizations/{org_slug}/notes/{noteId}/attachments 创建笔记附件

删除 ●DELETE /organizations/{org_slug}/notes/{noteId} 删除笔记 ●DELETE /organizations/{org_slug}/notes/{noteId}/permissions/{permissionId} 删除笔记权限 ●DELETE /organizations/{org_slug}/notes/{noteId}/project-permissions 删除笔记项目权限 ●DELETE /organizations/{org_slug}/notes/{noteId}/favorite 取消笔记收藏

在进行迁移之前,需要对 每个 Docs 相关的 API 进行梳理,明确其 具体作用、调用方、依赖关系,以便评估其迁移必要性和可行性。最终的目标是将必要的 Docs API 迁移到Mega 服务中,保证功能完整性和调用的连续性。

[需求描述]

  1. API 调研与分类
  • 调查现有所有与 Docs 相关的 API
  • 记录每个 API 的具体作用(如:文档创建、查询、更新、权限校验、版本历史、搜索、评论等)
  • 确认调用方(前端、第三方系统、内部服务)以及是否仍在使用
  • 分类 API(需要迁移 / 可以废弃 / 需重构后迁移)
  1. 迁移策略制定
  • 对需要迁移的 API,设计新的归属模块或服务位置
  • 确认迁移过程中需要调整的依赖(数据库、权限、缓存等)
  • 明确迁移顺序,避免依赖链断裂
  1. 校验与对比
  • 迁移完成后,对新旧 API 进行行为对比,确保返回结果一致
  • 对核心流程增加回归测试(如:文档保存-查询-更新链路)
  1. 差异化支持
  • 对需要权限校验或额外逻辑的 API,补充文档说明,避免迁移后出现行为不一致

[代码标准]

  1. 所有 PR 提交必须签署 Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide
  2. 所有 PR 提交必须通过 GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
  3. 代码注释均需要使用英文;

[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;

[开发指导]

  1. 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;

[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。

  1. Quanyi Ma [email protected]
  2. Tianxing Ye [email protected]

[备注]

  1. 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务r2cn 开源实习计划 - 学生注册与审核

benjamin-747 avatar Aug 20 '25 02:08 benjamin-747

任务创建成功。

r2cn-bot[bot] avatar Aug 20 '25 02:08 r2cn-bot[bot]

/request-assign

zhoujiaqi30 avatar Aug 20 '25 06:08 zhoujiaqi30

认领失败:请先在 https://summer-ospp.ac.cn/r2cnLogin 进行学生注册并通过审核后才能认领任务。

r2cn-bot[bot] avatar Aug 20 '25 06:08 r2cn-bot[bot]

/request-assign

Donnow avatar Aug 20 '25 08:08 Donnow

认领成功:等待导师审核,请及时联系导师进行审核。

r2cn-bot[bot] avatar Aug 20 '25 08:08 r2cn-bot[bot]

/intern-approve

benjamin-747 avatar Aug 21 '25 06:08 benjamin-747

认领审核成功:已将该任务分配给学生。

r2cn-bot[bot] avatar Aug 21 '25 06:08 r2cn-bot[bot]

任务更新成功,当前分值为: 40

r2cn-bot[bot] avatar Sep 22 '25 08:09 r2cn-bot[bot]

/request-assign

zhoujiaqi30 avatar Oct 14 '25 07:10 zhoujiaqi30

操作失败:当前任务的状态不允许进行该操作。

r2cn-bot[bot] avatar Oct 14 '25 07:10 r2cn-bot[bot]

/intern-close

benjamin-747 avatar Nov 28 '25 02:11 benjamin-747

操作成功:任务关闭不再追踪。

r2cn-bot[bot] avatar Nov 28 '25 02:11 r2cn-bot[bot]